角路由,默认为”路由,404的“ **”无法正常工作

时间:2019-09-12 09:34:21

标签: angular angular-routing angular8

在我的app-routing.module文件中,我有一些子路由,用于默认登录页面的空路由和用于404页面的一个'**'路由。

提供下面的代码

const routes: Routes = [
  {
    path: 'dashboard',
    loadChildren: () => import('<module path>').then(mod => mod.<module name>)
  },
  {
    path: 'customer',
    loadChildren: () => import('<module path>').then(mod => mod.<module name>)
  },
  {
    path: 'user',
    loadChildren: () => import('<module path>').then(mod => mod.<module name>)
  },
  {
    path: '',
    loadChildren: () => import('<module path>').then(mod => mod.<module name>)
  },
  {
    path: '404',
    component: PageNotFoundComponent,
    canActivate: null
  },
  {
    path: '**',
    redirectTo: '/404',
    canActivate: null
  }

];

使用此代码,我无法进入404页面,因为它将始终重定向到route('')页面。然后,我更改了路线的顺序并添加了最后使用empty('')路由,然后404工作,但是事件根empty('')URL(http://localhost:4200)重定向到404 URL 。有什么方法可以保留空URL进行登录并使404正常工作?

1 个答案:

答案 0 :(得分:4)

要始终避免使用''路径进行重定向:

{
    path: '',
    loadChildren: () => import('<module path>').then(mod => mod.<module name>)
    pathMatch: 'full'
}

还有一个建议,我将为所有意外路径保留“ **”路径,以简化您的代码:

{
    path: '**',
    component: PageNotFoundComponent
}

如果您不使用防护措施,则可以删除“ canActivate”:)