我继承了一个使用服务工作者的角形应用程序。
有时,当我刷新页面片刻时,我会看到一个Chrome错误页面:

就在真正的页面显示之后。
当我签入“网络”选项卡时,我得到了以下内容:

因此,对于网络问题,第一个页面加载失败,然后服务工作人员在后面提供完全相同的页面。
我能够在本地服务器上复制它,所以我怀疑这是一个真正的网络错误(而且所有其他文件都可以在没有任何问题的情况下加载)。
在我得到的服务人员日志中:
Console: {"lineNumber":0,"message":"The FetchEvent for "https://..." resulted in a network error response: the promise was rejected.","message_level":2,"sourceIdentifier":1,"sourceURL":""}
Console: {"lineNumber":0,"message":"Uncaught (in promise) UnknownError: Unexpected internal error.","message_level":3,"sourceIdentifier":1,"sourceURL":"https://.../ngsw-worker.js"}在角配置中,根模块中的导入似乎非常简单:
ServiceWorkerModule.register('./ngsw-worker.js', {
enabled: true,
}),对于我的测试,"true“是硬编码的,但它在配置文件中。在某些环境中,它是禁用的,那么我们就不再有这个问题了.
ngsw-config:
{
"index": "/index.html",
"assetGroups": [
{
"name": "app",
"installMode": "prefetch",
"resources": {
"files": [
"/favicon.ico",
"/manifest.json",
"/index.html",
"/*.css",
"/*.js"
]
}
}
]
}@角/芯:~13.2.3 @角/服务-工作者:^13.2.3
欢迎任何帮助/提示!
更新
我从ngsw-config.json文件中删除了index.html,以防止它被服务工作者缓存:
“索引”:"","assetGroups":[{“名称”:“应用”,"installMode":“预取”,“资源”:{“文件”:"/favicon.ico","/manifest.json","/.css","/.js“}]
它确实不再是缓存了,但它仍然被服务工作人员截获,而且有时仍然出错:

如果我在工具中检查服务工作者的“绕行网络”选项,我就不会再看到这个错误了。
发布于 2022-09-16 07:04:39
你可以试试:
<base href="/">
"index": "",。有时,不需要缓存索引文件就可以始终正确运行最新的代码。希望能帮上忙!
https://stackoverflow.com/questions/73531029
复制相似问题