我有一个 angularJS 应用程序,配置如下:
$locationProvider.html5Mode(true);
$locationProvider.hashPrefix('!');
所以在现代浏览器中,它与 pushstate 一起工作没问题,示例 URL 是:
http://myapp.com/members
在旧版浏览器中,例如IE9,当我浏览到该 URL 时,它按预期将其重写为:
http://myapp.com/members#!/members
从这一点开始点击任何链接都使用 hashbang 方法,也正确:
http://myapp.com/members#!/members/add
然而...
如果我完全重新加载一个页面,一旦它位于 hashbang 重写的 url 上,它会继续将哈希附加到自身。第一次刷新:
http://myapp.com/members#!/members#!/members#!%2Fmembers
..和第二次刷新:
http://myapp.com/members#!/members#!/members#!%2Fmembers#!/members#!%2Fmembers%23!%2Fmembers%23!%2Fmembers
这里发生了什么可能导致这种情况?通常它不会发生,因为人们将在应用程序内导航并且 Angular 将处理 url,但进行完全重新加载似乎会破坏它。谢谢。
最佳答案
尝试设置
<base href="/" />
在头上?它可能是 angular 1.1.5 错误/功能。
关于javascript - AngularJS:Hashbang URL 在完全刷新时不断附加到自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16828988/