添加了通配符路由,但仍用于未定义的路由 Cannot GET /
Wildcard route added but still for undefined route Cannot GET /
我在我的项目中使用 Angular 6。我添加了通配符路由,但当我转到任何未定义的路由 angular 在浏览器中给出 Cannot GET /<path>
时,我仍然面临错误。
下面是我的路线,所有其他定义的路线都工作得很好,但通配符不工作
const AppRoutes: Routes = [
{ path: '', redirectTo: 'login', pathMatch: 'full' },
{ path: "register", component: RegisterComponent },
{ path: "login", component: LoginComponent },
{ path: "dashboard", component: DashboardComponent, canActivate: [AuthGuard] },
{ path:"backup",component:BackupComponent},
{ path: '**', component: NotFoundComponent },
];
默认导入路由..
imports: [
BrowserModule,
ReactiveFormsModule,
NgxPaginationModule,
.
.
.
RouterModule.forRoot(AppRoutes),
],
出于某种原因我无法使用基于哈希的路由
//Can not use hash base routing in my case
RouterModule.forRoot(AppRoutes, { useHash: true }),
我相信通配符应该在没有基于哈希的路由的情况下工作。让我知道哪里出错了。
您定义的路由似乎没有问题。但是,check this article 基于哈希的路由存在问题。
这个你可以尝试用两种方法解决:
- 尝试改变父路由和外卡路由的顺序如
const AppRoutes: Routes = [
{ path: "register", component: RegisterComponent },
{ path: "login", component: LoginComponent },
{ path: "dashboard", component: DashboardComponent, canActivate: [AuthGuard] },
{ path:"backup",component:BackupComponent},
{ path: '', redirectTo: 'login', pathMatch: 'full' },
{ path: '**', component: NotFoundComponent },
];
redirectTo
用于 NotFoundComponent
。
详情请查看这篇文章WildCardRoutes
谢谢
我 运行在 NodeJS 中使用后端 运行ning Angular 和 Node 通过 ng-build 和节点 app.js 在同一端口 app.js 当我 运行 angular 使用 ng serve 它工作正常,但使用 ng build 则不行,但在生产中一切看起来都很好并且通配符按预期工作。
我在我的项目中使用 Angular 6。我添加了通配符路由,但当我转到任何未定义的路由 angular 在浏览器中给出 Cannot GET /<path>
时,我仍然面临错误。
下面是我的路线,所有其他定义的路线都工作得很好,但通配符不工作
const AppRoutes: Routes = [
{ path: '', redirectTo: 'login', pathMatch: 'full' },
{ path: "register", component: RegisterComponent },
{ path: "login", component: LoginComponent },
{ path: "dashboard", component: DashboardComponent, canActivate: [AuthGuard] },
{ path:"backup",component:BackupComponent},
{ path: '**', component: NotFoundComponent },
];
默认导入路由..
imports: [
BrowserModule,
ReactiveFormsModule,
NgxPaginationModule,
.
.
.
RouterModule.forRoot(AppRoutes),
],
出于某种原因我无法使用基于哈希的路由
//Can not use hash base routing in my case
RouterModule.forRoot(AppRoutes, { useHash: true }),
我相信通配符应该在没有基于哈希的路由的情况下工作。让我知道哪里出错了。
您定义的路由似乎没有问题。但是,check this article 基于哈希的路由存在问题。
这个你可以尝试用两种方法解决:
- 尝试改变父路由和外卡路由的顺序如
const AppRoutes: Routes = [
{ path: "register", component: RegisterComponent },
{ path: "login", component: LoginComponent },
{ path: "dashboard", component: DashboardComponent, canActivate: [AuthGuard] },
{ path:"backup",component:BackupComponent},
{ path: '', redirectTo: 'login', pathMatch: 'full' },
{ path: '**', component: NotFoundComponent },
];
redirectTo
用于NotFoundComponent
。
详情请查看这篇文章WildCardRoutes
谢谢
我 运行在 NodeJS 中使用后端 运行ning Angular 和 Node 通过 ng-build 和节点 app.js 在同一端口 app.js 当我 运行 angular 使用 ng serve 它工作正常,但使用 ng build 则不行,但在生产中一切看起来都很好并且通配符按预期工作。