2016-12-25 8 views
1

別のウェブサイトのフォルダ内にあるWebサイトに対してAngularJSルーティングを設定しようとしています。しかし、リンクをクリックするたびにURLにページ名の前に#!/が表示されます。たとえば、ホームページのリンクが#/の場合、URLをクリックすると#!/#%2Fにリダイレクトされ、スラッシュがエンコードされます。ここでは、コードは次のとおりです。サブフォルダ内のウェブサイトのAngularJSルーティング - #!/サイトの前のページのURLを表示

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" data-ng-app="app"> 
<head> 
    <title>Appening - Photo Sharing App</title> 
    <meta charset="utf-8"/> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/> 
    <meta name="viewport" content="width=device-width, initial-scale=1"/> 
    <link rel="icon" type="image/png" href="/Appening/Images/favicon.png"/> 
    <link rel="apple-touch-icon" type="image/png" href="/Appening/Images/applefav.png"/> 
    <link rel="stylesheet" type="text/css" href="/Appening/Styles/bootstrap.min.css"/> 
    <link rel="stylesheet" type="text/css" href="/Appening/Styles/styles.css"/> 
    <base href="/Appening"/> 
</head> 
<body> 
    <div data-ng-controller="collapseMenuCtrl"> 
     <div class="navbar navbar-default" role="navigation"> 
      <div class="container"> 
       <div class="navbar-header"> 
        <button type="button" class="navbar-toggle" data-ng-click="isNavCollapsed = !isNavCollapsed"> 
         <span class="sr-only">Toggle navigation</span> 
         <span class="icon-bar"></span> 
         <span class="icon-bar"></span> 
         <span class="icon-bar"></span> 
        </button> 
       </div> 
       <div class="collapse navbar-collapse" uib-collapse="isNavCollapsed"> 


    <ul class="nav navbar-nav"> 
        <li class="active"><a href="#/">Home</a></li> 
        <li><a href="#About">About</a></li> 
        <li><a href="#Contact">Contact</a></li> 
       </ul> 
      </div> 
     </div> 
    </div> 
</div> 
<div data-ng-view></div> 
<script src="/Appening/Scripts/angular.min.js"></script> 
<script src="/Appening/Scripts/angular-route.min.js"></script> 
<script src="/Appening/Scripts/angular-animate.min.js"></script> 
<script src="/Appening/Scripts/ui-bootstrap-tpls-2.3.1.min.js"></script> 
<script src="/Appening/Scripts/script.js"></script> 

そしてここでは、script.jsファイルです:

var app = angular.module("app", ["ngRoute", "ngAnimate", "ui.bootstrap"]); 

app.config(function ($routeProvider) { 
    $routeProvider 
    .when("/", { 
     templateUrl: "main.html" 
    }) 
    .when("/About", { 
     templateUrl: "about.html" 
    }) 
    .when("/Contact", { 
     templateUrl: "contact.html" 
    }); 
}); 

私は含むサブフォルダが、それでもダメに頭の中でベースラインを設定します。これはサブディレクトリの角度ルーティングを設定する初めてのことですが、何か不足していますか? URLをリダイレクトせずに文字を削除し、これらのページに正常にルーティングするにはどうすればよいですか?

ご協力いただければ幸いです。

+0

hrefは、 '' href = "#/ About"と '' hashPrefix'についてのドキュメントを読んでください – charlietfl

+0

こんにちは、彼らはハッシュの後にスラッシュを入れてはいけません。その他の提案はありますか? – AnderSco01

+0

同意しない...しかしそれはあなたのアプリです。ルータの経路が行く限り、 '#' – charlietfl

答えて

0

$locationProviderを設定し、html5Modetrueに設定します。ここ

コードsnippet-

app.config(function ($routeProvider, $locationProvider) { 
$routeProvider 
.when("/", { 
    templateUrl: "main.html" 
}) 
.when("/About", { 
    templateUrl: "about.html" 
}) 
.when("/Contact", { 
    templateUrl: "contact.html" 
}); 

$locationProvider.html5Mode(true); 

})です。

関連する問題