延迟加载模块

时间:2017-12-09 12:16:43

标签: angular typescript lazy-loading

我正在尝试在我的angular 2应用程序上延迟加载一些模块但是当我去特定模块的路径时,GET请求似乎搞砸了。

APP-routing.module.ts

const routes = [
  {path: 'products', loadChildren: './products/products.module#ProductsModule'},
  {path: 'user', loadChildren: './user/user.module#UserModule'},
  {path: '**', redirectTo: '/products'}
]

产品routing.module.ts

const routes: Routes = [
  {path: '', component: ProductsComponent}
];

用户routing.module.ts

const routes: Routes = [
  {path: 'login', component: LoginComponent},
  {path: 'register', component: RegisterComponent},
  {path: 'reset-password', component: ResetPasswordComponent},
  {path: 'profile', component: ProfileComponent}
];

产品路线运行良好,但用户路线似乎不起作用,我认为是由于以下控制台错误:

GET http://localhost:4200/user/inline.bundle.js net::ERR_ABORTED

出于某种原因,用户被添加到网址中以获取我的所有资产。我猜我在路由方面做错了但是我不确定是什么?

1 个答案:

答案 0 :(得分:0)

用户模块中是否有''空路径?您应该为您的用户模块创建一些重定向空传递,因为当UserModule延迟加载并且没有到达它的路径时,您的路径位于/user/

用户routing.module.ts

const routes: Routes = [
  {path: '', redirectTo: 'login', pathMatch: 'full'},
  {path: 'login', component: LoginComponent},
  {path: 'register', component: RegisterComponent},
  {path: 'reset-password', component: ResetPasswordComponent},
  {path: 'profile', component: ProfileComponent}
];