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

IT技术 javascript angularjs url hashbang angularjs-1.6
2021-01-31 21:49:06

我上AngularJS网址项目已经从改变localhost:3000/admin#/localhost:3000/admin#!/自上次我在我的项目工作...

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

3个回答

它是 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('');
}]);

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

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

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

如何读取该默认前缀,以便在需要时使用一些智能代码将此前缀添加到 URL?
2021-03-25 21:49:06

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