AngularJS:Hashbang URL在完全刷新时会自动附加到自身

Run*_*ble 10 javascript angularjs

我有一个angularJS应用程序,配置如下:

$locationProvider.html5Mode(true);
$locationProvider.hashPrefix('!');
Run Code Online (Sandbox Code Playgroud)

所以在现代浏览器中,它与pushstate一起使用没有问题,一个示例URL将是:

http://myapp.com/members
Run Code Online (Sandbox Code Playgroud)

在旧的浏览器中,例如IE9,当我浏览到该URL时,它会按预期重写它:

http://myapp.com/members#!/members
Run Code Online (Sandbox Code Playgroud)

单击此处的任何链接都会使用hashbang方法,也正确:

http://myapp.com/members#!/members/add
Run Code Online (Sandbox Code Playgroud)

然而...

如果我在一个hashbang重写的URL上完全重新加载页面,它将继续将哈希附加到自身.第一次刷新:

http://myapp.com/members#!/members#!/members#!%2Fmembers
Run Code Online (Sandbox Code Playgroud)

..和第二次刷新:

http://myapp.com/members#!/members#!/members#!%2Fmembers#!/members#!%2Fmembers%23!%2Fmembers%23!%2Fmembers
Run Code Online (Sandbox Code Playgroud)

这可能导致这种情况发生了什么?通常它不会发生,因为人们将在应用程序内导航并且角度将处理网址,但进行完全重新加载似乎打破了它.谢谢.

lau*_*iad 6

尝试设置

<base href="/" /> 
Run Code Online (Sandbox Code Playgroud)

在头上?它可能是角度1.1.5错误/功能.