Angular 1.6 中的 URL 散列 (#!/) 前缀代替了简单的散列 (#/)

新手上路,请多包涵

我在 AngularJS 项目上的 URL 已从 localhost:3000/admin#/ 更改为 localhost:3000/admin#!/ 自从我上次在我的项目上工作…

网上查不到,请问有人知道这是什么吗?

原文由 Pierre C. 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 334
2 个回答

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

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

在此处 获取更多信息。


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

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

原文由 Mistalis 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

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

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

原文由 Overdrivr 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题