延迟加载问题:加载块0失败

时间:2017-09-19 08:12:48

标签: angular lazy-loading

[在此处输入图像描述] [1]组件 - lazy.module.ts

 const routes: Routes = [
   { path: 'memberdetails', component: MemberDetailsComponent },
   { path: 'leaves', component: LeavemanagementComponent },
  { path: 'attendance', component: AttendanceComponent }
 ];

APP-routing.module.ts

 const routes: Routes = [
   { path: 'lazy', loadChildren: './lazy.module#LazyModule'},
 ];

它在本地工作,但在我点击上述任何一个链接后我收到此错误 ...

vendor.05d559e….bundle.js:1 ERROR Error: Uncaught (in promise): Error: 
Loading chunk 0 failed.
Error: Loading chunk 0 failed.
at HTMLScriptElement.r (inline.9786b27….bundle.js:1)
at HTMLScriptElement.L (polyfills.1a7da64….bundle.js:1)
at e.invokeTask (polyfills.1a7da64….bundle.js:1)
at Object.onInvokeTask (vendor.05d559e….bundle.js:1)
at e.invokeTask (polyfills.1a7da64….bundle.js:1)
at r.runTask (polyfills.1a7da64….bundle.js:1)
at t.invokeTask [as invoke] (polyfills.1a7da64….bundle.js:1)
at h (polyfills.1a7da64….bundle.js:1)
at HTMLScriptElement.d (polyfills.1a7da64….bundle.js:1)
at HTMLScriptElement.r (inline.9786b27….bundle.js:1)
at HTMLScriptElement.L (polyfills.1a7da64….bundle.js:1)
at e.invokeTask (polyfills.1a7da64….bundle.js:1)
at Object.onInvokeTask (vendor.05d559e….bundle.js:1)
at e.invokeTask (polyfills.1a7da64….bundle.js:1)
at r.runTask (polyfills.1a7da64….bundle.js:1)
at t.invokeTask [as invoke] (polyfills.1a7da64….bundle.js:1)
at h (polyfills.1a7da64….bundle.js:1)
at HTMLScriptElement.d (polyfills.1a7da64….bundle.js:1)
at u (polyfills.1a7da64….bundle.js:1)
at u (polyfills.1a7da64….bundle.js:1)
at polyfills.1a7da64….bundle.js:1
at e.invokeTask (polyfills.1a7da64….bundle.js:1)
at Object.onInvokeTask (vendor.05d559e….bundle.js:1)
at e.invokeTask (polyfills.1a7da64….bundle.js:1)
at r.runTask (polyfills.1a7da64….bundle.js:1)
at o (polyfills.1a7da64….bundle.js:1)
at t.invokeTask [as invoke] (polyfills.1a7da64….bundle.js:1)
at h (polyfills.1a7da64….bundle.js:1)

文件夹结构https://i.stack.imgur.com/PXBYi.png

5 个答案:

答案 0 :(得分:2)

清理缓存或使用CTRL + Shift + R组合键,然后重试!

答案 1 :(得分:1)

在我的特定情况下,CTRL + Shift + R硬重新加载很有帮助,因为我的问题是我进行了设计更改并需要硬重新加载。不确定是否可以在所有情况下解决此错误。

答案 2 :(得分:0)

就我而言 广告拦截器扩展正在创建此问题。一旦我禁用它。问题解决了

答案 3 :(得分:0)

我们最近在Angular版本中也遇到了同样的问题。我们正在使用Angular 7+。 原因确实是缓存。但是在我们的例子中,它是基于CloudFront的缓存。所以我的建议是,如果您遇到任何此类问题,请清理所有类型的缓存,例如:

  1. 特定于域(例如CloudFlare)
  2. 任何CDN缓存-例如; AWS的CloudFront-稍后我们实施了该解决方案,其中任何新的部署管道都会自动刷新CloudFront缓存。现在,无需手动清除高速缓存。
  3. 基于Web服务器的缓存-Apache或IIS
  4. 用户浏览器缓存。

Medium.com上的某些文章提到了有关编写服务/指令以通知构建更改的信息。我们尚未实施,但对我来说似乎很有希望。

如果这不能解决问题,请尝试从构建器中清除程序包缓存。就像我们有基于GitLAb CI的管道一样,该管道也会产生此类问题,要解决此问题,我们已在GitLab运行器上禁用了源代码/程序包的缓存。

答案 4 :(得分:0)

我们在 localhost 服务器中遇到了同样的问题。原因是 chrome 和其他浏览器中的证书无效。我们更改了 Chrome 中的一个选项。

此选项仅适用于通过 HTTP 向 localhost 发出的请求。

在 Chrome 地址栏中,输入 chrome://flags/#allow-insecure-localhost,然后选择“启用”链接。