我的一些用户收到此错误:
未处理的拒绝消息:'正在加载块0失败'堆栈:正在加载 在HTMLScriptElement.n
中,块0失败
问题是,我没有成功复制它。我现在已经有一段时间了。
相同的用户,每时间进入网站。但只对其中一些人而言。 然而,所有这些都使用Win7 + Chrome 60,因此它与浏览器无关。
我在网上找不到任何关于此特定错误的内容。另外我没有使用react-router,我确实使用了反应。
任何想法还有什么可能是错的?
是否可能是由某些安全问题引起的?
我正在使用webpack
2.6.1和CommonsChunkPlugin
为我的供应商创建块。
获得错误的其中一个用户的用户代理:
Mozilla / 5.0(Windows NT 6.1; Win64; x64)AppleWebKit / 537.36(KHTML, 像Gecko)Chrome / 60.0.3112.113 Safari / 537.36
答案 0 :(得分:2)
之所以这样,是因为我使用require.ensure
和webpack创建了块,并使用jsonp
按需添加此脚本,换句话说,它将脚本src标记添加到使用创建的块文件的HTML。
似乎某些用户有扩展甚至某些配置来阻止此类jsonp
请求,无论它们是否属于同一个域。
一个解决方案显然没有使用require.ensure
,或者使用错误回调来处理这种情况。
此外,还在寻找webpack使用xhr + eval加载脚本的方法,这将防止出现这种情况。 我刚刚找到了这个npm模块:https://github.com/elliottsj/xhr-eval-chunk-webpack-plugin,但我希望它能得到webpack本身的支持。
我已经为此开了一个问题:https://github.com/webpack/webpack/issues/5630,希望看到一些进展。
答案 1 :(得分:1)
回答Google搜索:
就我而言,Error: Loading chunk 9 failed.
仅在Firefox中触发。
由正则表达式正后方引起。 (?<=...)
请注意,并非所有浏览器都支持此功能。自行决定使用!
答案 2 :(得分:0)
问题可能是由以下原因引起的:
我发现的唯一解决方案是使用此Webpack插件重试块加载:https://github.com/mattlewis92/webpack-retry-chunk-load-plugin
它将:
?cache-bust=X
查询,以避免(可能是格式错误的)缓存的JS文件。缺点是-它无限期地束缚。
答案 3 :(得分:0)
只需检查要加载块文件(js文件)的路径。 检查angular.json文件中deployURL的路径。
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "./Scripts/app",
"deployUrl": "./Scripts/app/",
"index": "app/index.html",
"main": "app/main.ts",
"polyfills": "app/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"aot": false,
"assets": [
"app/favicon.ico",
"app/assets"
],
答案 4 :(得分:0)
如果您使用的是Cloudflare或Web服务器的任何CDN主机,请尝试清除缓存,因为这可能是由于旧版本应用程序的缓存引起的。由于新版本与旧版本不匹配,因此失败。