我想在我的项目中为管理员添加延迟加载的路由。我正在使用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)
这是我的路由模块:
admin-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应用程序,则可以使用。
答案 0 :(得分:2)
在.angular-cli.json文件中添加以下行。
"apps": [
{
"deployUrl": "Angular-Build-Path/",
谢谢。
答案 1 :(得分:0)
根据Angular的部署文档:
如果将文件复制到服务器子文件夹,请附加build标志, --base-href并进行适当设置。
因此,您应该在.angular-cli.json文件中使用-base-href 参数。
(可选)您可以在没有-base-href配置的情况下(位于angular-cli-file中)在开发模式下工作,而仅在应用生产版本中进行设置。
ng build --base-href = / Angular / dist /
参考文献:
https://angular.io/guide/deployment#simplest-deployment-possible