angular2 routing redirectTo当url不存在时

问题描述:

当用户尝试访问像/ randomUrl之类的不存在的URL时,是否有方法将用户重定向回主页。angular2 routing redirectTo当url不存在时

export const routes: RouterConfig = [ 
{ path: '', component: LoginComponent }, 
]; 

我以为它会像下面的代码,但它不会重定向回主页面。

{path: '/**', redirectTo: '/', pathMatch: 'full' } 

全route.ts

import { Component } from '@angular/core'; 
import { provideRouter, RouterConfig, CanActivate } from '@angular/router'; 
import { LoginComponent } from '../login/component/login'; 
import { AuthGuard } from './authguard'; 
import { JourneysComponent } from '../journeys/components/journeys'; 

export const routes: RouterConfig = [ 
    { path: '', component: LoginComponent }, 
    {path: '**', redirectTo: '/', pathMatch: 'full'}, 
    { path: 'journeys', component: JourneysComponent, canActivate: [AuthGuard] } 

]; 

export const APP_ROUTER_PROVIDERS = [ 
    provideRouter(routes) 
]; 
+0

您是否尝试过'pathMatch'?您可能还需要在子路由上添加'/ **'重定向路由。浏览器控制台中是否有错误? –

+0

是的,我得到无效的路由/ **,哦,因为它应该以斜杠开始,但它不会重定向到任何地方 – nCore

+1

我认为'/'应该从'/ **'中移除 - 只是**' –

变化

{path: '/**', redirectTo: '/', pathMatch: 'full' } 

{path: '**', redirectTo: '/', pathMatch: 'full' } 

的路径不应包含前导/

+0

现在它不让我去任何现有的路径。它保持在默认页面上。 – nCore

+0

我认为你需要在路由中添加'pathMatch:full'。很难说不然,因为关于您的设置的信息太少。 –

+0

您也可以尝试最后移动'**'路由,但在最近的路由器版本中AFAIK路由顺序不应该再重要。 –