3

在 config 方法中,我定义了一些路由,如下所示:

$locationProvider.html5Mode(true);

$routeProvider.when('/', {
  ...
});

$routeProvider.when('/front', {
  ...
});

$routeProvider.when('/user/account', {
  ...
});

<a href="">使用标签浏览应用程序时一切正常。但是,当我去/user/account手动刷新我的浏览器时,它会弹出/account路由并将我重定向到/user,因为没有为/user.

我注意到当我将路由配置为 only 时不会发生这种情况/account,但这并不能解决真正的问题。所以我设置了以下包罗万象(在上面的路线下方)来记录正在发生的事情:

$routeProvider.otherwise({
  redirectTo: function() {
    console.log('bumped', arguments);

    return '/';
  }
});

并看到它试图匹配/account而不是/user/account. 这里发生了什么?

我在 Angular 1.1.5 上。服务器在所有请求(对于 HTML5 模式)上适当地返回 index.html,所以这似乎是一个客户端问题。

如何正确配置此路由?

编辑

原来这是 1.1.5 核心中的一个错误。

https://github.com/angular/angular.js/issues/2799

在这里修补

https://github.com/IgorMinar/angular.js/commit/2bc62ce98f893377bfd76ae211c8af027bb74c1d

4

1 回答 1

2

最终使用ui-router解决了这个问题。

于 2013-11-29T04:02:11.537 回答