2013-08-18 15 views
0

我使用了index.html作爲我的主頁,我的部分視圖爲ng-view$routeProvider。我從URL中刪除#字符(使用html5mode)後,我的應用程序無法使用url(默認路由除外)。也會打開頁面,因爲新選項卡會返回404錯誤。該應用程序找不到index.html。當我在瀏覽器正在刪除#字符原因應用在agular中無法正常工作

<!DOCTYPE html > 
<html ng-app="myApp"> 
<head> 
<meta http-equiv="content-type" content="text/html;charset=utf-8" /> 
<!-- CSS File --> 
<!-- JS File --> 
<title></title> 
</head> 
<body> 
<div class="container" ng-controller="RootController"> 
<!-- Header Of Page --> 
<div class="header"> 
    <a href="" class="header_logo"> 
     <img src="img/logo.png"> 
    </a> 
    <a href="" class="header_name"> 
    </a> 
    <a href="{{ link }}" class="header_signOut"> 
    </a> 
</div> 
<!-- Separator Line --> 
<div class="separator"></div> 
<!-- Rendered By AngularJS --> 
<div class="myClass" ng-view></div> 
<!-- Footer --> 
<div class="footer"></div> 
</div> 
</body> 
</html> 

這個點擊一個鏈接被路由

when('/', { 
     controller: OperatorController, 
     templateUrl: 'html/operator.html' 
    }). 

    when('/simReport', { 
     controller: SimReportController, 
     templateUrl: 'html/simReport.html' 
    }). 
+0

嗨,你能粘貼路由部分,或創建一個fiddlejs –

+0

我添加的路由架構@JQueryGuru –

+0

' index.html'在根目錄 –

回答

3

我有同樣的問題,一切正常。

發生這種情況的原因是,當您直接加載頁面而不是從應用程序內部的鏈接加載時,角度尚未加載,因此它是處理請求的服務器路由器,而不是角度的。 如果您使用服務器來爲您的角度應用程序提供服務,則需要更新其路由器,以便任何應該由角度處理的url都需要重定向到index.html(因此角度可以加載並執行路由)。

如果您正在使用咕嚕/自耕農加載您的應用程序的角度,我可以編輯我的回答更多的細節的JS

+0

我是否需要在服務器端爲客戶端的每個路由添加死記硬背?例如我在angularjs路由中有50條路由 –

+0

不,你可以使用默認路由。 這就是我在我的小節點/ coffeescript網絡服務器中做到的,它只提供角度應用: 'app.get'/ *',(req,res) - > res.sendfile('index.html')' – saintmac

相關問題