我有以下代码:
const appRoutes: Routes = [
{ path: '', redirectTo: '/login', pathMatch: 'full' },
{ path: 'home', component: HomeComponent, canActivate: [AuthGuard] },
// Lazy Loading (preloads) so I wont have to LOAD the new code chunk
{ path: 'highlights', loadChildren: './highlights/highlights.module#HighlightsModule', canActivate: [AuthGuard] },
{ path: 'news', loadChildren: './news/news.module#NewsModule', canActivate: [AuthGuard] },
{
path: 'not-found',
component: ErrorPageComponent,
data: { message: 'Page was not found' }
},
{ path: '**', redirectTo: '/not-found' } // must be last
];
我的登录"/登录"路由外包给带有路由模块(AuthRoutingModule(的模块(AuthModule(。
我在AuthRoutingModule中的路由常量是:
const authRoutes: Routes = [
{ path: 'login', component: LoginComponent}
];
仅当 appRoutes 中的此路径存在时,才会出现问题:
{ path: '**', redirectTo: '/not-found' }
否则它工作正常。
我不明白。我总是找不到,好像无法识别"/login"。
"/login">与我上面提到的外包模块一起导出。
怎么了?
如果这些是您在调用RouterModule.forRoot()
时使用的路由定义,那么如果您尝试导航到 root/login
,它将始终导航到 not-found。在这些路由中没有该路径的定义...
如果您有另一个模块,其中有该路径的定义,则需要将该模块加载到用于 RouterModule.forRoot(( 的路由中
我也有类似的问题。如果您的设置正确,那么尝试解决组件中的所有文件导入错误/小错误。