最近我已經注意到,在AngularJS應用中使用ngRoute
模塊時,該路由在URL中包含#!
,該URL早於#
。角度路線包含#!在url中而不是#
例如,www.webiste.com/#/login
變得www.website.com/#!/login
我必須啓用html5Mode
並且還禁用requireBase
使用代碼其除去基部作爲一個整體,
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
和URL變化www.website.com/login
其工作正常,但具有誤導性,而不是Angular SPA URL的外觀。
如果我沒有啓用html5Mode
,那麼URL就會被編碼,我無法繞過它。因此www.website.com/#/login
變成www.website.com/#!/#%2Flogin
(注意後面的/
編碼爲%2F
)。
這是開發人員爲了某些特定目的而實施的更改嗎?它有什麼不同?我需要對我的應用程序進行哪些更改才能使其正常工作?難道我做錯了什麼?
Github的問題:https://github.com/angular/angular.js/issues/15547
使用散列違背使點html5Mode ...那麼,爲什麼您使用的哈希值呢?至於有關 – charlietfl
路由某處的hashprefix讀文檔(可能位於app.js中),您需要設置前綴「$ locationProvider.hashPrefix('!');」。去掉 」!」 –
我不會在任何地方設置任何東西。我啓用了'html5Mode'來擺脫URL中'/'(斜線)的編碼。 –