我已經開始看到有關Angular2的一些信息,特別是UI路由器狀態和路由。我注意到的是,與Ang1相反,我不得使用'#'字符以便從路線導航到另一個路線。 這意味着,如果我進入狀態foo
,其路由爲/foo
,我已經到類型:爲什麼UI-Router停止使用哈希字符?
mydomain.com/app/foo
,而不是舊mydomain.com/app /#/ foo
這顯然啓動了一個HTTP請求到服務器中的url /foo。在Ang1響應當然會是一個404(除非我以前創建一個靜態鬼頁面,例如爬蟲),但與Ang2我得到相同的HTML(index.html),我要求:
mydomain。 com/app/
這基本上是一個「加載....」頁面。
我想知道的是,這是如何可能的,如果這與新一代框架提供的服務器端渲染功能相關聯。
謝謝
對不起,但我沒有得到如何服務器與此有關。據我瞭解pushState不會觸發任何頁面重新加載,所以我怎麼可能看到頁面的請求? – Nemus
爲了澄清,如果您希望能夠爲除根之外的任何路由(例如'/ app/foo')添加書籤並稍後返回(例如,從刷新或新瀏覽器或選項卡),則區別適用。使用'useHash:false'(pushState),您的服務器將不得不專門配置爲映射這些路由,併爲這些情況正確提供客戶端。但是,使用'useHash:true',不需要這種特殊的服務器端處理;你只有一個服務器端點,即根目錄;按照Web標準,哈希片段完全由瀏覽器處理。 – Will