【发布时间】:2020-09-24 13:01:58
【问题描述】:
我正在开发一个有角度的 PWA 应用程序。所以我通过ng add @angular/pwa添加了一个npm包。它添加成功,没有错误。
生成的清单工作正常。但我面临着服务人员的问题。当应用程序上线时,它会存储所有缓存(见附件),但每当应用程序下线时,它会显示错误 - HTTP ERROR 504
,而不是服务于 service worker 的请求这是我的 ngsw-config.json -
{
"index": "/index.html",
"assetGroups": [
{
"name": "app",
"installMode": "prefetch",
"resources": {
"files": ["assets/images/favicon.ico", "/index.html", "/*.css", "/*.js"]
}
},
{
"name": "assets",
"installMode": "lazy",
"updateMode": "prefetch",
"resources": {
"files": [
"/assets/**",
"/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)"
]
}
}
]
}
任何帮助将不胜感激...
【问题讨论】:
-
我认为您一切正常。根据 http 错误 (504),您的问题可能与您托管 pwa 的位置有关。因此,基本上,您与服务器的连接已正确执行,但您的服务器在尝试为您的 pwa 提供服务时却没有找到任何东西。总之,服务器正在使用某种中间件(例如 nginx),这就是浏览器没有部署缓存的原因,因为您的浏览器建立了连接并且不需要离线缓存。
-
是的,此应用程序部署在 Nginx 服务器上。你能详细说明一下这个问题吗?
-
好的,我会尽力的。基本上,实际上有两个连接,第一个是在你的浏览器和 nginx 代理之间,这个连接是正确执行的,所以你的浏览器不需要部署缓存版本。问题是第二个,连接断开(因为您正在检查离线功能)。也许,为了检查我是否正确,您可以执行两个快速测试。在本地部署并使用您的机器作为服务器测试离线功能或关闭 nginx 代理并检查它。
-
好的,非常感谢@JTejedor,我会试试你的解决方案。 :)
标签: angular google-chrome angular-service-worker http-status-code-504 angular-pwa