【问题标题】:Angular routing : how can I redirect all unknown nested routes to one component?角度路由:如何将所有未知的嵌套路由重定向到一个组件?
【发布时间】:2020-09-19 15:27:41
【问题描述】:

目前我有以下路由器:

const routes: Routes = [
  { path: '', redirectTo: 'presentation', pathMatch: 'full' },
  { path: 'presentation', component: PresentationPageComponent },
  { path: 'news', component: NewsPageComponent }, {
    path: 'tools', component: ToolsPageComponent,
    children: [
      { path: 'unit-selector', component: UnitSelectorComponent },
      { path: 'object-selector', component: ObjectSelectorComponent },
    ] },
  { path: 'games', component: GamesPageComponent },
  { path: '**', component: Error404PageComponent }
];

我的问题有两个:

路由器正确地将所有错误路由(例如 mydomain.com/badRoutemyDomain.com/incorrectRoute Web 导航器(尝试了 Firefox 和 Edge)在控制台中显示白屏和错误(由于 MIME 类型不正确,资源被阻止)

mydomain.com/tools 路由正常工作,并在 ToolsPageComponent 中显示 Error404PageComponent

我怎样才能让我的路线正常工作?

注意:我使用 WebStorm IDE 在本地运行网站(它没有服务器/后端)

这是错误的图片(这只发生在嵌套路由上):

【问题讨论】:

    标签: javascript angular routes


    【解决方案1】:

    您的app-routing.module.ts 中似乎有两个{ path: '**', component: Error404PageComponent }。从子路由中删除{ path: '**', component: Error404PageComponent },只保留Routes 中的最后一个。会好的。

    我在Stackblitz 上为您准备了充足的食物。我的示例中的第三个选项卡 undefined route 是多个未定义的路由,例如 "/home/page1/undefined/nested/route",如果您单击该选项卡,您将被正确重定向到 home 组件。

    【讨论】:

    • 这似乎对我当前的问题没有任何影响(如果信息可以提供任何帮助,我正在使用 WebStorm IDE)。我将编辑我的问题以包含您的答案,因为这对我来说似乎是个好主意
    • 在 Stackblitz 上查看我的示例
    • 我可以看到它有效,但我不明白为什么我的无效;我不断收到 MIME 错误,但我不明白是什么原因造成的
    • 错误是什么?将错误消息添加到可以帮助您的问题中。
    • 好的,我现在加个屏幕
    猜你喜欢
    • 2020-09-18
    • 1970-01-01
    • 2018-05-12
    • 2020-04-02
    • 2011-05-07
    • 2021-07-17
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    相关资源
    最近更新 更多