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