在Angular視圖中路由時,我們添加以下內容。我不明白需要添加#
;如果我刪除它,我會得到一個404錯誤。爲什麼要在使用AngularJS進行路由時在路徑之前放置'#'?
a href="#/AddNewOrder"
在Angular視圖中路由時,我們添加以下內容。我不明白需要添加#
;如果我刪除它,我會得到一個404錯誤。爲什麼要在使用AngularJS進行路由時在路徑之前放置'#'?
a href="#/AddNewOrder"
enter link description here你不需要。你可以配置你的URL看起來像普通的URL,但實際上他們仍然會以同樣的方式工作。
檢查https://docs.angularjs.org/guide/$location 並參考html5mode
它只會在現代瀏覽器的工作,雖然。舊瀏覽器仍然會顯示哈希。但最酷的是,你可以用舊的/普通的方式編寫你的URL。
#
或片段標識符是指示單個文檔的特定部分的方式。如果沒有#,則url對應不同的頁面。
例如www.yoursite.com/page
鏈接到你的網站的/page
位置,而www.yoursite.com/#/location
指向你的網站的同一索引頁,但在網頁#location
,或在你的情況,不同的模板視圖specfic點。
角度路由無法爲不同的服務器URL加載不同的模板。它專爲單頁應用程序設計,任何部分視圖或模板的加載都必須在同一個網頁或位置上進行。因此,當使用angularjs路由時,只有URL的片段部分發生變化。
有關片段的更多信息可以在這裏找到:http://en.wikipedia.org/wiki/Fragment_identifier
如果您正在使用HTML5 pushState的你不需要#。看看@ user1177476的答案。 https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions#how-to-configure-your-server-to-work-with-html5mode瞭解更多信息。 – Martin 2014-11-24 18:26:51