2

我有以下路由配置:

app.config( function ($routeProvider, $locationProvider, $httpProvider) {

// Routes
$routeProvider.when('/admin', {
    templateUrl : '/app/partials/dashboard.html',
    controller  : 'DashboardCtrl'
});
$routeProvider.when('/admin/settings', {
    templateUrl : '/app/partials/settings.html',
    controller  : 'SettingsCtrl'
});
$routeProvider.when('/404', {
    templateUrl : '/app/partials/404.html',
});
$routeProvider.otherwise({redirectTo: '/404'});

$locationProvider.html5Mode(true);
});

一切正常,除了当我打开/admin/settings并重新加载页面时,它重定向到404. 我尝试删除 html5Mode,它可以工作。但是,我真的很想使用 html5Mode。我错过了什么?请帮我。

哦,顺便说一句,我使用的是 AngularJS 1.1.5。

4

2 回答 2

1

我遇到了一个非常相似的错误,并通过<base href='my_app_base_url'></base>在我的index.html页面中插入头部来解决它。这个想法来自这个 GitHub 问题(https://github.com/angular/angular.js/issues/2774)和另一个问题(https://github.com/angular/angular.js/issues/2868),以及我在评论中提到的那个。

于 2013-08-01T14:29:01.540 回答
0

试试 $location.path('/404').replace();

于 2013-07-21T10:14:26.063 回答