我有以下代码:
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
];
我的登录' /登录' route被外包到一个带有路由模块(AuthRoutingModule)的模块(AuthModule)。
我在AuthRoutingModule中的路由const是:
const authRoutes: Routes = [
{ path: 'login', component: LoginComponent}
];
问题仅在 appRoutes 中存在路径时才会出现:
{ path: '**', redirectTo: '/not-found' }
否则它可以正常工作。
我不明白。我总是找不到,好像' / login' 无法识别。
' / login' 与我上面提到的外包模块一起导出。
有什么问题?
答案 0 :(得分:0)
如果这些是您在致电RouterModule.forRoot()
时使用的路线定义,那么如果您尝试导航至root/login
,它将始终导航至未找到。这些路线中没有该路径的定义......
如果您有另一个模块,其中有该路径的定义,那么您需要将该模块加载到您用于RouterModule.forRoot()的路由中
答案 1 :(得分:0)
我遇到了类似的问题。如果您的设置正确那么 尝试解决组件中的所有文件导入错误/次要错误。