我只是注意到由于某种原因,我得到了:
http://localhost/ReportsWeb/#!/
代替这个:http://localhost/ReportsWeb/#/
添加了感叹号...为什么任何想法都无法弄清其原因所在。
显然,如果我导航到http://localhost/ReportsWeb,则URL变为http://localhost/ReportsWeb/#!/
更新
谢谢大家的帮助。
这两个选项可以正常工作:
1)
设置$locationProvider.html5Mode(true)
添加<base href="/ReportsWeb/">
2)
设置$locationProvider.html5Mode(false);
设置$locationProvider.hashPrefix('');
哪个选项是“更正确”的处理方式?
对我来说,第二个选项看起来不错,我不需要进行任何其他更改即可使我的项目正常工作。在第一种情况下,我需要设置基本元素,但是角度路由无法工作,我可能必须更改所有“ /#/ Path”以排除哈希标签。因此,我将选择选项2)
谢谢
最佳答案
Hashbang
模式是AngularJS
用来向Angular应用提供深层链接功能的一种技巧。在hashbang模式(对于html5模式的后备)中,URL路径使用前置#字符。它们不重写标签,不需要任何服务器端支持。如果没有其他说明,则Hashbang模式是AngularJS使用的默认模式。 hashbang URL看起来像:
http://localhost/ReportsWeb/#!/
为了明确并配置hashbang模式,需要在应用程序模块的config函数中对其进行配置。我们还可以配置
hashPrefix
,在hashbang模式下,该前缀为!
。此前缀是Angular用于旧版浏览器的后备机制的一部分。我们还可以配置此字符。angular.module('myApp', ['ngRoute'])
.config(['$locationProvider', function($locationProvider) {
$locationProvider.html5Mode(false);
$locationProvider.hashPrefix('');
}]);