0

当我在 Chrome 中打开网站时,我遇到了 Angular 的这个问题

_localhost/angular/_

网址更改为

_localhost/#_

但是在Firefox中一切都如预期

我认为它是由 routeProvider 引起的

var Angapp = angular.module('angApp', []).
config(['$routeProvider', function ($routeProvider) {
    $routeProvider.when('/', {
        templateUrl: 'partials/main.html',
        controller: mainCtrl
    })
        .when('/:catId', {
        templateUrl: 'partials/category.html',
        controller: categoryCtrl
    })
        .when('/detail/:detId', {
        templateUrl: 'partials/detail.html',
        controller: detailsCtrl
    })
        .otherwise({
        redirectTo: '/'
    });

}]);

我希望有人可以帮助我并解释发生了什么我错过了什么。

提前致谢。

编辑:

当我添加

 .....
 config(['$routeProvider','$locationProvider', function($routeProvider. $locationProvider){
 .......
 $locationProvider.html5Mode(true);

路由在 Chrome 和 Firefox 中完全中断

_localhost/angular/#%2Flink_

当我删除“#%2F”并重新加载页面时,当我点击退格键时,我得到一个 404 作为返回,然后网站加载正确!

4

1 回答 1

0

请确保您的浏览器支持HTML5. 对于不支持 HTML5 历史 API 的浏览器,AngularJS 将自动回退到hasbangURL,因此无法"remove"使用hash(#).

于 2013-07-31T06:00:05.973 回答