小编典典

为什么会有#!在我的角度应用程序的网址中

angularjs

由于某些未知原因,我有 “#!” 在Visual Studio 2015中进行调试时,将其添加到我的应用程序网址中。

网址看起来像这样

http://localhost:58394/#!/customers
http://localhost:58394/#!/

如果这是某种错字,我已经搜索了所有应用程序,但我不知道这是哪里来的。

我可以在ASP.NET WEB API以及ASP.NET CORE WEB API中看到这一点…

对于前端,我使用角度和角度路线 1.6.0

任何想法是从哪里来的?

我没有使用html5mode或base标签,但我很高兴现在能在#那里,我只是不明白为什么感叹号(!)在那里…

该应用程序不可部署在网络上,并且未使用任何可能使用#!的外部服务。跟踪或其他任何符号。

感叹号刚开始不久就开始出现,所以我想这是由我使用的某些库引起的。

我只想知道为什么存在’!’,以及在其中强制执行此惊叹号的库。


阅读 209

收藏
2020-07-04

共1个答案

小编典典

我在angualr 1.6.0 changelog中找到了这个

$ location:默认hashPrefix为’!’ (aa077e,#13812)

更新日志:https :
//github.com/angular/angular.js/blob/master/CHANGELOG.md

更改:https
:
//github.com/angular/angular.js/commit/aa077e81129c740041438688dff2e8d20c3d7b52

突破性变化

哈希$location爆炸URL
的哈希前缀已从空字符串“”更改为爆炸“!”。如果您的应用程序不使用HTML5模式或正在不支持HTML5模式的浏览器上运行,并且您未指定自己的哈希前缀,则客户端URL现在将包含“!”
字首。例如,而不是 mydomain.com/#/a/b/c将变为mydomain/#!/a/b/c

恢复到原来的方式,只需使用

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