0

我有一条路线可以捕获所有丢失的路线并呈现 404 样式的页面。我想创建一个匹配任何以“/browse/”开头的 url 的路由,例如“/browse/shoes/red”。这似乎是正确的方法:

App.Router.map(function() {
  this.route('browse', { path: '/browse/*fields' });
  this.route('missing', { path: '/*badPath' });
});

但是,ember 的 RouteRecognizer 总是在浏览路径上选择丢失的路径。(这样做的逻辑在 route-recognizer.js 的 sortSolutions 中。)这是 Ember 中的错误吗?是否有正确的方法来使用全局路由并且仍然有 404 处理程序?

顺便说一句,我可以为浏览创建一个资源,而不是让它成为这样的路由:

App.Router.map(function() {
  this.resource('browse', { path: '/browse' }, function() {
    this.route('baz', {path: '/*'});
  });
  this.route('missing', { path: '*' });
});

这仍然有同样的问题。

4

1 回答 1

1

我认为这一定是一个错误......

这是一个 JSBin:http: //jsbin.com/ucanam/1403/edit

在这里,您可以看到它按预期直接进入“缺失”路线:

http://jsbin.com/ucanam/1403#/some/random/stuff

直接进入“浏览”路线的尝试失败:

http://jsbin.com/ucanam/1403#/browse/test/stuff

于 2013-10-10T02:42:42.397 回答