是否可以使父路由成为 404,但子路由成为特定路由

Is it possible to make a parent route a 404, but the child route a specific route

在我的 router.js 文件中,我有如下内容

import EmberRouter from '@ember/routing/router';

const Router = EmberRouter.extend({});

Router.map(function () {
  this.route('index', { path: '/' });
  this.route('foo', function() {
    this.route('bar', function() {
      this.route('cat');
    });
  });

  this.route('notfound', { path: '/*path' });
});

export default Router;

问题是我希望路径 /foo/bar/cat 路由到 foo.bar.cat 路由,但我不希望路径 /foo/foo/bar 路由除了 404 以外的任何东西。在我的例子中,foobar 路由基本上是无用的。我只是希望 url 有 3 个级别用于美学目的。

我实际上意识到更有意义的是避免创建 foobar 路由并为我想要的路由创建路径。

所以不要在 ember-cli 中这样做:

ember g route foo/bar/cat

我刚刚做了

ember g route cat

然后我在路由器中设置了想要的路径。

Router.map(function () {
  this.route('index', { path: '/' });
  this.route('cat', { path: '/foo/bar/cat'});
  this.route('notfound', { path: '/*path' });
});

这给了我 foo/bar/cat 的正确路线,但是 foofoo/bar 都被路由到 notfound 路线。