我正在尝试使用$locationProvider.html5Mode(true)
删除我的应用上的#标记。它会取出#,但现在我的所有观看次数都为404 errors
。
angular.module('myApp', ['ngRoute']).
config(['$routeProvider','$locationProvider', function($routeProvider, $locationProvider) {
$routeProvider.when('/', { templateUrl: 'views/home.html', controller: 'homeCtrl' });
$routeProvider.when('/about', { templateUrl: 'views/about.html', controller: 'aboutCtrl' });
$locationProvider.html5Mode(true);
}]);
答案 0 :(得分:2)
事实证明,如果使用$locationProvider.html5Mode(true)
。您必须设置基本网址(<base href="/appFolder/" />
)... according to this answer
答案 1 :(得分:0)
对于.net Project,您还需要在Web配置中添加重写规则。 将以下代码添加到web.config中,并在“单页”部分的开头添加href是您的单页路径
<system.webServer> <rewrite>
<rules>
<rule name="RewriteRules" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
</conditions>
<action type="Rewrite" url="/index.html" />
</rule>
</rules> </rewrite></system.webServer>