我只是注意到由于某种原因,我得到了:

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('');
}]);

09-25 21:03