在我的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
正常工作?
答案 0 :(得分:4)
要始终避免使用''路径进行重定向:
{
path: '',
loadChildren: () => import('<module path>').then(mod => mod.<module name>)
pathMatch: 'full'
}
还有一个建议,我将为所有意外路径保留“ **”路径,以简化您的代码:
{
path: '**',
component: PageNotFoundComponent
}
如果您不使用防护措施,则可以删除“ canActivate”:)