Когда я включаю html5Mode, обновление не работает

У меня следующая проблема. Я использую 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() {
    });
})();

Есть идеи как решить?


person Niezborala    schedule 21.08.2014    source источник
comment
у вас есть app, а не MOPS.   -  person Jai    schedule 21.08.2014
comment
Опечатка! Проблема все еще существует.   -  person Niezborala    schedule 21.08.2014
comment
также вы можете использовать ng-href вместо этого.   -  person Jai    schedule 21.08.2014
comment
Но это не решает мою проблему.   -  person Niezborala    schedule 21.08.2014


Ответы (1)


Вероятно, вам нужно настроить правила перезаписи.
У вас нет /contacts на вашем сервере, он должен сопоставляться с вашим обработчиком.

Например, для Apache это выглядит так (.htaccess файл):

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