2015-10-19 51 views
-1

我看到IE和Chrome之間加載根URL的不同行爲,我不明白爲什麼。 我控制器配置爲:角度:爲什麼Chrome瀏覽器需要哈希根URL

$routeProvider.when("/", { 
    title: "Home", 
    controller: "mainController", 
    controllerAs: "mainCtrl", 
    templateUrl: "/templates/mainView.html" 
} 

我有我的導航欄應該指向根的鏈接。如果我在網址中加入散列,它對Chrome來說工作正常。但是如果我只是有一個斜槓,它不會加載主控制器/視圖。無論我是否包含IE,IE都能正常工作。

換句話說,這個工程:

<a href="/#/">Home</a> 

這不:

<a href="/">Home</a> 

任何想法?我可以通過包含哈希來得到它,但我想明白爲什麼我需要。感謝任何提示。 Marcus

+0

這是我的第一個問題,關於SO,我似乎沒有這方面的代碼格式工作。上面的第二個標籤是爲了讓href =「/」。同樣,控制器配置沒有正確格式化。抱歉。 :-( – MarcusK

+1

您可以將角度運行配置爲HTML5模式,其中不包含哈希標記在URL中,請參見[doc](https://docs.angularjs.org/guide/$location) – MarkoCen

+0

感謝Marko的幫助 – MarcusK

回答

0

如果您沒有設置html5模式,則角度將在#標記之外。比方說,你的應用程序是在這裏:http://www.somedomain.com/myApp/一個"/"會帶給你到這裏http://www.somedomain.com/"/#/"會帶給你到這裏http://www.somedomain.com/myApp/#/

+0

謝謝Mathew,我想我會看到這個問題,如果我只是'/'IE似乎將它轉換爲'#/',那麼位置變成'http://www.somedomain.com/#/'。上面的路由規則工作,Chrome似乎沒有這樣做,奇怪。 – MarcusK

相關問題