Angular 2错误:加载块多次失败

2023-11-25

我在服务器上部署了 Angular 2 应用程序,该应用程序运行良好。此外,我还记录角度应用程序的错误,以便我可以解决它们并使我的应用程序更加稳定。

我不断得到Loading chunk failed error.

Error: Uncaught (in promise): Error: Loading chunk 9 failed.
(error: https://prjectcdn/9.d91e531959b3f1aa8ff2.js)
Error: Loading chunk 9 failed.
(error: https://prjectcdn/9.d91e531959b3f1aa8ff2.js)
    at HTMLScriptElement.u (https://prjectcdn/runtime.94ca0c35f923f70cf7e7.js:1:1243)
    at HTMLScriptElement.P (https://prjectcdn/polyfills.ba52267bd36a0b180ce1.js:1:73488)
    at t.invokeTask (https://prjectcdn/polyfills.ba52267bd36a0b180ce1.js:1:64564)
    at Object.onInvokeTask (https://prjectcdn/main.86b90fde964f10f1e8a8.js:1:756933)
    at t.invokeTask (https://prjectcdn/polyfills.ba52267bd36a0b180ce1.js:1:64485)
    at n.runTask (https://prjectcdn/polyfills.ba52267bd36a0b180ce1.js:1:59748)
    at n.invokeTask [as invoke] (https://prjectcdn/polyfills.ba52267bd36a0b180ce1.js:1:65654)
    at m (https://prjectcdn/polyfills.ba52267bd36a0b180ce1.js:1:76575)
    at HTMLScriptElement.b (https://prjectcdn/polyfills.ba52267bd36a0b180ce1.js:1:76805)
    at HTMLScriptElement.u (webpack:///webpack/bootstrap:133:0)
    at apply (webpack:///C:/GitApps/prodoh/WebApp/angular-app/node_modules/zone.js/dist/zone.js.pre-build-optimizer.js:1188:38)
    at apply (webpack:///C:/GitApps/prodoh/WebApp/angular-app/node_modules/zone.js/dist/zone.js.pre-build-optimizer.js:421:30)
    at invokeTask (webpack:///C:/GitApps/prodoh/WebApp/angular-app/node_modules/@angular/core/fesm5/core.js.pre-build-optimizer.js:17290:32)
    at onInvokeTask (webpack:///C:/GitApps/prodoh/WebApp/angular-app/node_modules/zone.js/dist/zone.js.pre-build-optimizer.js:420:35)
    at invokeTask (webpack:///C:/GitApps/prodoh/WebApp/angular-app/node_modules/zone.js/dist/zone.js.pre-build-optimizer.js:188:46)
    at runTask (webpack:///C:/GitApps/prodoh/WebApp/angular-app/node_modules/zone.js/dist/zone.js.pre-build-optimizer.js:496:33)
    at invoke (webpack:///C:/GitApps/prodoh/WebApp/angular-app/node_modules/zone.js/dist/zone.js.pre-build-optimizer.js:1540:13)
    at invokeTask (webpack:///C:/GitApps/prodoh/WebApp/angular-app/node_modules/zone.js/dist/zone.js.pre-build-optimizer.js:1566:16)
    at z (webpack:///C:/GitApps/prodoh/WebApp/angular-app/node_modules/zone.js/dist/zone.js.pre-build-optimizer.js:814:30)
    at resolvePromise (webpack:///C:/GitApps/prodoh/WebApp/angular-app/node_modules/zone.js/dist/zone.js.pre-build-optimizer.js:771:16)
    at webpack:///C:/GitApps/prodoh/WebApp/angular-app/node_modules/zone.js/dist/zone.js.pre-build-optimizer.js:873:16
    at apply (webpack:///C:/GitApps/prodoh/WebApp/angular-app/node_modules/zone.js/dist/zone.js.pre-build-optimizer.js:421:30)
    at invokeTask (webpack:///C:/GitApps/prodoh/WebApp/angular-app/node_modules/@angular/core/fesm5/core.js.pre-build-optimizer.js:17290:32)
    at onInvokeTask (webpack:///C:/GitApps/prodoh/WebApp/angular-app/node_modules/zone.js/dist/zone.js.pre-build-optimizer.js:420:35)
    at invokeTask (webpack:///C:/GitApps/prodoh/WebApp/angular-app/node_modules/zone.js/dist/zone.js.pre-build-optimizer.js:188:46)
    at runTask (webpack:///C:/GitApps/prodoh/WebApp/angular-app/node_modules/zone.js/dist/zone.js.pre-build-optimizer.js:595:34)
    at drainMicroTaskQueue (webpack:///C:/GitApps/prodoh/WebApp/angular-app/node_modules/zone.js/dist/zone.js.pre-build-optimizer.js:500:20)
    at invoke (webpack:///C:/GitApps/prodoh/WebApp/angular-app/node_modules/zone.js/dist/zone.js.pre-build-optimizer.js:1540:13)

我也始终将旧块保留在 CDN 中,但仍然经常出现此错误。这个问题的根本原因应该是什么?我该如何克服这个问题?

我无法重现此错误。


错误:未捕获(承诺):错误:加载块 9 失败。


正如本文详细描述的article

  • Angular 延迟加载功能是一种按需加载 NgModule 的设计模式,它将构建文件分割成许多块并按需加载 以加快页面速度。

  • 默认情况下,浏览器会在初始加载时缓存 HTML 和 CSS/JS 块以加快速度 应用程序通过从缓存加载而不是进行网络调用。


预计原因Loading chunk error

  • 如果您已经在浏览器中打开应用程序,并且当您尝试导航路线加载块时进行新的构建部署,则会出现加载块失败的问题,因为浏览器正在使用已经缓存的块而不是新部署的块。

解决此问题的解决方法。

  1. 硬刷新(control + shift + R)新构建部署后的页面加载新块一切正常,我们需要向用户显示弹出消息并要求他重新加载页面

  2. 如果发生块失败错误,则以编程方式强制应用程序重新加载global error handler


import { ErrorHandler } from '@angular/core';

@Injectable()
export class GlobalErrorHandler implements ErrorHandler {

  handleError(error: any): void {
   const chunkFailedMessage = /Loading chunk [\d]+ failed/;

    if (chunkFailedMessage.test(err.message)) {
      window.location.reload();
    }
// other stuff for error handling.
  }
}
  • 在我们的根模块中提供它来更改应用程序中的默认行为,因此我们不使用默认的 ErrorHandler 类,而是使用自定义的GlobalErrorHandler class.

@NgModule({   
  providers: [{provide: ErrorHandler, useClass: GlobalErrorHandler}]
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 2错误:加载块多次失败 的相关文章

随机推荐

  • 当被属性遮蔽时修改类 __dict__

    我正在尝试修改类中的值 dict 直接使用类似的东西X dict x 1 不可能进行这样的修改 因为一个类 dict 实际上是一个mappingproxy不允许直接修改值的对象 尝试直接修改或等效的原因是我试图将类属性隐藏在元类上定义的同名
  • Facebook 页面自动“赞”URL(用于 QR 码)

    我想知道是否可以构建一个 URL 来自动喜欢 Facebook 页面 然后 这个 URL 可以转换为 QR 码 这样人们就可以通过使用智能手机阅读您的页面来自动 喜欢 您的页面 我已经搜索了很多 但到目前为止我所能找到的只是商业服务 例如S
  • AppCompatActivity.onCreate 只能从同一库组内调用

    升级到appcompat后25 1 0我开始遇到奇怪的错误 在我的代码中 Override protected void onCreate Bundle savedInstanceState super onCreate savedInst
  • SSIS 存储过程调用

    我正在尝试调用一个简单的存储过程 它将返回正常测试格式的名称列表 全部在一行中 我向它传递了两个参数 但无论我如何设置调用 无论是在 OLE DB 源编辑器中 还是在执行 SQL 任务中 我的 SQL 语句中一定缺少一些东西 因为我不断收到
  • HTML5 Canvas 在绘图时闪烁

    我从一个等距游戏开始 当绘制地面的所有部分时 我的画布正在闪烁 不在 IE 中 当我将 fps 设置为 20 或更低时 闪烁停止 我该如何解决这个问题 有任何想法吗 var camerax 300 cameray 100 var fps 6
  • 如何解决 Xcode 上 Storyboard 的警告? [复制]

    这个问题在这里已经有答案了 Trailing Leading constraint is missing which may cause overlapping with other views 我的故事板 只需放置 2 个标签及其约束 避
  • ui:repeat 不适用于 f:selectItem

    我正在使用 Icefaces 选择菜单从用户列表中选择用户 我想为每个用户重复 selectItem 这是我尝试过的
  • 您的实用工具包中有什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我认识的一些最高效的工程师 开发人员和 IT 专业人员通常都会携带一个由有用程序 插件或实用程序组成的通用 工具包 以帮助他们进行日常调试 开发或设计 问题是 您的实用工具包中有什么
  • 如何在 Visual Studio 2008 中添加 ASP.NET 的页面事件

    这是一个 Visual Studio 问题 我觉得所有有用的智能感知应该有一些帮助 但我似乎找不到它 我在 VS2008 中用 ASP NET C 制作了一个带有代码隐藏的页面 当然它会自动生成 PageLoad 事件方法 那么 如果我想为
  • rjava .jcall 问题

    我目前正在开发一个 R 包以将 java 代码集成到 R 中 但是 我在尝试正确调用 java 类方法时遇到问题 到目前为止我已经独立开发了一个java程序并编译成class文件 然后打包为jar文件 我的代码示例如下 library rJ
  • 在Android中设置每天在特定时间重复闹钟

    我正在使用闹钟管理器在每天的特定时间运行闹钟 下面是代码 Calendar calendar Calendar getInstance calendar setTimeInMillis System currentTimeMillis ca
  • 使用 epoll 进行非阻塞 tcp 连接

    我的 Linux 应用程序正在执行非阻塞 TCP 连接系统调用 然后使用epoll wait检测三向握手完成 有时epoll wait两者都返回POLLOUT POLLERR为同一套接字描述符设置的事件 我想了解 TCP 级别发生了什么 我
  • uisearchDisplayController:更改标签“无结果”

    使用 uisearchDisplayController 时如何更改标签 无结果 Regards 我已经成功删除了标签 因为从来没有空结果集 如果因为从服务器获取而没有结果 请将数据源重置为单行 并让它显示空白的表视图单元格 此外 使用逻辑
  • 为什么我在尝试检查偶数/奇数时会收到“类型错误:字符串格式化期间未转换所有参数”?

    这段代码给出了一个错误 print type a whole number n input if n 2 1 print Odd else print Even 我假设我必须对 if 语句中的变量 n 做一些特殊的事情 我是 Python
  • simple_form的collection_radio_button和自定义标签类

    我正在尝试使用 FontAwesome 制作带有无线电集合的星级评级表格 为此我实际上需要更改 simple form 生成的 collection radio button 输入的标签类 但找不到任何明显的解决方案 到目前为止我使用 fo
  • GLM 如何处理翻译

    OpenGL 数学库 GLM 使用以下算法来计算平移矩阵 taken from source code template
  • 如何在Dataset中存储自定义对象?

    根据Spark 数据集简介 在我们期待 Spark 2 0 的同时 我们计划对数据集进行一些令人兴奋的改进 具体来说 自定义编码器 虽然我们目前自动生成各种类型的编码器 但我们希望为自定义对象开放 API 并尝试将自定义类型存储在Datas
  • 在 core-site.xml 中设置 fs.default.name 将 HDFS 设置为安全模式

    我以伪分布式模式在单台机器上安装了 Cloudera CDH4 发行版 并成功测试了它是否正常工作 例如可以运行 MapReduce 程序 在 Hive 服务器上插入数据等 但是 如果我碰巧core site xml文件有fs defaul
  • JobIntentService onComplete 发生崩溃

    我收到以下 Android 8 的崩溃报告 但我找不到原因或解决此问题 java lang IllegalArgumentException Given work is not active JobWorkItem id 1 intent
  • Angular 2错误:加载块多次失败

    我在服务器上部署了 Angular 2 应用程序 该应用程序运行良好 此外 我还记录角度应用程序的错误 以便我可以解决它们并使我的应用程序更加稳定 我不断得到Loading chunk failed error Error Uncaught