URL hash-bang (#!/) 前缀而不是 Angular 1.6 中的简单哈希 (#/)
Posted
技术标签:
【中文标题】URL hash-bang (#!/) 前缀而不是 Angular 1.6 中的简单哈希 (#/)【英文标题】:URL hash-bang (#!/) prefix instead of simple hash (#/) in Angular 1.6 【发布时间】:2017-05-04 17:07:10 【问题描述】:自从我上次处理我的项目以来,我在 AngularJS 项目中的 URL 已从 localhost:3000/admin#/
更改为 localhost:3000/admin#!/
...
网上没有找到,有人知道这是什么吗?
【问题讨论】:
【参考方案1】:在 Angular 1.6.0 中,默认的 hashPrefix 已更改为 !
。
请参阅related commit 和changelog entry。
【讨论】:
【参考方案2】:它是 AngularJS 1.6 的新功能,它添加了一个新的哈希前缀。
由于aa077e8,默认哈希前缀用于
$location
hash-bang URL 已从空字符串 (''
) 更改为 bang ('!'
)。如果你的 应用程序不使用 html5 模式或在浏览器上运行 不支持 HTML5 模式,并且你没有指定你自己的 hash-prefix 然后客户端 URL 现在将包含!
前缀。为了 例如,URL 将变为而不是mydomain.com/#/a/b/c
mydomain.com/#!/a/b/c
.
Source here 了解更多信息。
如果您想删除此前缀,请将此代码添加到您的配置中:
appModule.config(['$locationProvider', function($locationProvider)
$locationProvider.hashPrefix('');
]);
【讨论】:
【参考方案3】:每个人都建议删除前缀,但您也可以简单地将 !
添加到客户端 URL(如果不使用 HTML5 模式,如果您在这里,您可能会这样做)。
因此,在您的 客户端 文件中,像这样更新 URL:
#/foo/bar
> #!/foo/bar
【讨论】:
如何读取默认前缀,以便在需要时使用一些智能代码将此前缀添加到 URL?以上是关于URL hash-bang (#!/) 前缀而不是 Angular 1.6 中的简单哈希 (#/)的主要内容,如果未能解决你的问题,请参考以下文章