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

时间:2016-12-19 15:36:25

标签: javascript angularjs url hashbang angularjs-1.6

自从我上次参与项目以来,AngularJS项目上的网址已从localhost:3000/admin#/更改为localhost:3000/admin#!/ ...

网上没有找到任何内容,有人知道这是什么吗?

3 个答案:

答案 0 :(得分:64)

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

  

由于aa077e8,用于$location hash-bang的默认哈希前缀   网址已从空字符串('')更改为爆炸('!')。如果你的   应用程序不使用HTML5模式或正在浏览器上运行   不支持HTML5模式,并且您尚未指定自己的模式   hash-prefix然后客户端URL现在将包含!前缀。对于   例如,URL将成为mydomain.com/#/a/b/c而不是mydomain.com/#!/a/b/c   appModule.config(['$locationProvider', function($locationProvider) { $locationProvider.hashPrefix(''); }]);

Source here了解更多信息。

如果要删除此前缀,请将此代码添加到配置中:

{{1}}

答案 1 :(得分:10)

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

因此,在客户端文件中,请更新以下网址:

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

答案 2 :(得分:5)

在Angular 1.6.0中,默认的hashPrefix已更改为!。 请参阅related commitchangelog entry