在Angular 1.6中使用URL hash-bang(#!/)前缀而不是简单的哈希(#/)

我上一次工作在我的项目上后,AngularJS项目上的URL已经从localhost:3000/admin#/更改为localhost:3000/admin#!/

没有在网上find,有人知道这是什么?

它是从AngularJS 1.6新增的,它添加了一个新的哈希前缀。

由于aa077e8 ,用于$location hash-bang URL的默认哈希前缀已经从空string( '' )变成了bang( '!' )。 如果您的应用程序不使用HTML5模式,或者在不支持HTML5模式的浏览器上运行,并且您没有指定自己的哈希前缀,则客户端URL现在将包含! 字首。 例如,而不是mydomain.com/#/a/b/c ,url将变成mydomain.com/#!/a/b/c

从这里获取更多信息。


如果你想删除这个前缀,添加这个代码到你的configuration:

 appModule.config(['$locationProvider', function($locationProvider) { $locationProvider.hashPrefix(''); }]); 

每个人都build议删除前缀,但你也可以简单地添加一个! 到客户端的URL(如果不使用HTML5模式,你可能会做,如果你在这里)。

所以在你的客户端文件中,像这样更新URLS:

#/foo/bar > #!/foo/bar

在Angular 1.6.0中,默认的hashPrefix已被更改为! 。 查看相关的提交和更改日志条目 。