[英]Angular 6 Lazy loading route
我想在项目中为管理员添加延迟加载的路由。 我正在使用ASP Net Core后端和Angular 6前端,因此我的编译代码输出目录是:wwwRoot / Angular / dist。 当我编译项目时,我看到文件“ admin-admin-module-ngfactory.js存在于其中,但是当我尝试输入页面'/ admin / dash'时,它抛出错误:
Failed to load resource: the server responded with a status of 404 (Not Found)
Error: Uncaught (in promise): Error: Loading chunk admin-admin-module-ngfactory failed.
(error: http://localhost:5000/admin-admin-module-ngfactory.js)
Error: Loading chunk admin-admin-module-ngfactory failed.
(error: http://localhost:5000/admin-admin-module-ngfactory.js)
这是我的路由模块:
管理员-routing.module.ts:
const routes: Routes = [
{ path: 'dash', component: AdminDashboardComponent, pathMatch: 'full'}
];
@NgModule({
imports: [
RouterModule.forChild(routes)
],
exports: [RouterModule],
declarations: []
})
export class AdminRoutingModule { }
和app-routing.module.ts:
const routes: Routes = [
{ path: 'dashboard', component: DashboardComponent },
{ path: 'error', component: ErrorComponent },
{ path: 'admin', loadChildren: './admin/admin.module#AdminModule' },
{ path: '', pathMatch: 'full', redirectTo: 'dashboard' },
];
@NgModule({
imports: [ RouterModule.forRoot(routes) ],
exports: [RouterModule]
})
export class AppRoutingModule { }
更新:
如果我使用dotnet run(使用ng build --aot)运行项目,则无法使用,但是如果我仅使用ng serve --aot启动Angular应用程序,则可以使用。
在.angular-cli.json文件中添加以下行。
"apps": [
{
"deployUrl": "Angular-Build-Path/",
谢谢。
根据Angular的部署文档:
如果将文件复制到服务器子文件夹,请附加构建标记--base-href并进行适当设置。
因此,您应该在.angular-cli.json文件中使用--base-href参数。
(可选)您可以在没有-base-href配置的情况下(位于angular-cli-file中)在开发模式下工作,而仅在复制生产版本中进行设置。
ng build --base-href = /角度/距离/
参考文献:
https://angular.io/guide/deployment#simplest-deployment-possible
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.