Angular2中的404页面和延迟加载

web*_*ter 4 routing http-status-code-404 angular

我无法让我的'404页面'使用延迟加载模块.当我在浏览器中输入随机网址时,我只看到一个空白页而不是我的酷页404页.

这是我的路由配置

export const routes: Routes = [
  { path: '', redirectTo: 'dashboard', pathMatch: 'full'},
  { path: 'dashboard', loadChildren: 'app/dashboard/dashboard.module#DashboardModule'},
  { path: 'buckets', loadChildren: 'app/buckets/buckets.module#BucketsModule'},
  { path: '**', loadChildren: 'app/notfound/notfound.module#NotFoundModule'} 
];

export const routing: ModuleWithProviders = RouterModule.forRoot(routes);
Run Code Online (Sandbox Code Playgroud)

当我浏览/桶时,我看到块正在延迟加载,它显示了在Buckets模块中配置的相应组件,没关系.

但它不适用于404错误页面.通常,路径的'**'应该适用于所有其他不存在的路由,但事实并非如此.

有人可以帮忙吗?

-angular2 final(2.0.0)

Mad*_*jan 6

URL匹配不适用于通配符延迟加载模块.我想知道你将在Lazy加载模块中的路由中添加什么.

说过你可能会尝试重定向到下面的通配符路由的不同路由,

{ path: 'notfound', loadChildren: 'app/notfound/notfound.module#NotFoundModule'}
{ path: '**', redirectTo: '/notfound' }
Run Code Online (Sandbox Code Playgroud)

更新

您可以在模块路由中给出一个空路径,以便它加载默认组件,

const notfoundRoutes: Routes = [
  { path: '',  component: NotFoundComponent }
];
Run Code Online (Sandbox Code Playgroud)

这可以确保当您路由到未配置的路径时,它会延迟并加载NotFound模块.

看到这个Plunker !!

希望这可以帮助!!