当我打开html5Mode刷新不起作用

时间:2014-08-21 10:02:15

标签: javascript angularjs angular-routing

我有以下问题。我正在使用AngularJS和angular-route。当我打开html5Mode

$locationProvider.html5Mode(true);

对于漂亮的URL,如果我刷新页面,我有“找不到页面”错误。

这是我的HTML代码:

<body ng-app="app">
<div class="container" ng-controller="MainCtrl">
    <div class="page-header">
        <h1>Page title <small>© 2014</small></h1>
    </div>

    <a href="/">HOME</a>
    <a href="/contact">CONTACT</a>
    <div ng-view></div>
</div>
</body>

和JS代码:

(function() {
angular.module("app", ["ngRoute"])

    .config(function($routeProvider,$locationProvider){
        $routeProvider
            .when("/",{
                template: "Home!"
            })
            .when("/contact",{
                template: "Contact!"
            });
        $locationProvider.html5Mode(true);
    })

    .controller("MainCtrl", function() {
    });
})();

任何想法如何解决?

1 个答案:

答案 0 :(得分:0)

可能你需要设置重写规则 您的服务器上没有/contacts,它应映射到您的处理程序。

例如,对于Apache,它看起来像(.htaccess文件):

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html