Angular 默认为“路由”和“**”的 404 路由未按预期工作
Angular routing with default as '' route and '**' for 404 not working as expected
在我的 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 页面,因为它总是会重定向到路由 ('') 页面。 然后我更改了顺序路由并在最后添加空('')路由然后 404
工作但是 事件根空('') URL(http://localhost:4200)重定向至 404
URL。有什么方法可以保留空的 URL 用于登录并使 404
正常工作?
要始终避免“”路径重定向:
{
path: '',
loadChildren: () => import('<module path>').then(mod => mod.<module name>)
pathMatch: 'full'
}
还有一个建议,我会为所有意外路由保留“**”路径以简化您的代码:
{
path: '**',
component: PageNotFoundComponent
}
如果你不使用守卫,你可以删除 "canActivate":)
在我的 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 页面,因为它总是会重定向到路由 ('') 页面。 然后我更改了顺序路由并在最后添加空('')路由然后 404
工作但是 事件根空('') URL(http://localhost:4200)重定向至 404
URL。有什么方法可以保留空的 URL 用于登录并使 404
正常工作?
要始终避免“”路径重定向:
{
path: '',
loadChildren: () => import('<module path>').then(mod => mod.<module name>)
pathMatch: 'full'
}
还有一个建议,我会为所有意外路由保留“**”路径以简化您的代码:
{
path: '**',
component: PageNotFoundComponent
}
如果你不使用守卫,你可以删除 "canActivate":)