AngularJS:html5Mode(true)导致404错误

时间:2014-02-23 20:05:23

标签: angularjs

我正在尝试使用$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);

}]);

2 个答案:

答案 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>