53

自从我上次处理我的项目以来,我在 AngularJS 项目上的 URL 已经从 更改为localhost:3000/admin#/......localhost:3000/admin#!/

网上没搜到,有人知道这是什么吗?

4

3 回答 3

74

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

由于aa077e8,用于$locationhash-bang URL 的默认哈希前缀已从空字符串 ( '') 更改为 bang ( '!')。如果您的应用程序不使用 HTML5 模式或在不支持 HTML5 模式的浏览器上运行,并且您没有指定自己的哈希前缀,那么客户端 URL 现在将包含!前缀。例如,而不是mydomain.com/#/a/b/cURL 将变为 mydomain.com/#!/a/b/c.

在此处获取更多信息。


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

appModule.config(['$locationProvider', function($locationProvider) {
  $locationProvider.hashPrefix('');
}]);
于 2016-12-19T15:39:22.083 回答
11

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

因此,在您的客户端文件中,像这样更新 URL:

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

于 2017-03-10T07:34:40.973 回答
6

在 Angular 1.6.0 中,默认的 hashPrefix 已更改为!. 请参阅相关的提交更改日志条目

于 2016-12-19T15:39:13.623 回答