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

vid*_*uch 4 asp.net asp.net-web-api angularjs asp.net-core

由于某种未知的原因,我有'#!' 在visual studio 2015中调试时添加到我的应用程序URL.

网址看起来像这样

http://localhost:58394/#!/customers
http://localhost:58394/#!/
Run Code Online (Sandbox Code Playgroud)

我已经搜索了所有应用程序,如果这是某种拼写错误,但我无法弄清楚这是从哪里来的.

我可以在ASP.NET WEB API以及ASP.NET CORE WEB API中看到...

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

这有什么想法来自哪里?

我没有使用html5mode也没有基本标签,我很高兴#现在在那里,我只是不明白为什么感叹号(!)在那里......

此应用程序不会在Web上部署,也不会使用任何可能使用#的外部服务!任何跟踪或其他任何内容的表示法.

最近的感叹号开始出现,所以我猜这是由我正在使用的一些库引起的.

我只是想知道为什么'!'在那里以及它在那里强迫这个感叹的库.

vid*_*uch 5

我在angualr 1.6.0 changelog中找到了这个

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

changelog:https://github.com/angular/angular.js/blob/master/CHANGELOG.md

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

突然变化

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

恢复旧的方式只是使用

appModule.config(['$locationProvider', function($locationProvider) {
    $locationProvider.hashPrefix('');
}]);
Run Code Online (Sandbox Code Playgroud)