503 正常(来自 serviceWorker)
Posted
技术标签:
【中文标题】503 正常(来自 serviceWorker)【英文标题】:503 ok (from serviceWorker) 【发布时间】:2019-05-28 08:30:42 【问题描述】:我使用 @angular/service-worker 为 angular4 Web 应用程序生成软件。 在更新 ngsw-manifest.json 以处理来自服务器的动态请求之后 离线时(首次加载后)我得到“状态代码:503 OK(来自 ServiceWorker)”。
有什么想法吗?
【问题讨论】:
此 ServiceWorker 在离线访问动态内容时返回“503 OK (from ServiceWorker)”存在一个未解决的错误 (Chrome) #168 github.com/angular/mobile-toolkit/issues/168 【参考方案1】:您的问题与您的网络服务器或代理 nginx 上的 [内容安全策略 (CSP)] 配置有关。由于您与 nginx 连接正常,因此您的浏览器中未启用 PWA 离线功能。
阅读更多内容 (https://content-security-policy.com/)。
【讨论】:
【参考方案2】:性能策略有效(您可以尝试此策略),由于 service worker 的异步特性,动态内容仅在第二个页面加载时缓存。在您的 ngsw-config.json 中:
"cacheConfig":
"strategy": "performance",
"maxSize": 100,
"maxAge": "3d"
默认情况下,运行时抓取的文件不会被缓存,但通过创建动态缓存组,Service Worker 抓取的匹配文件也会被缓存。选择 optimizeFor 性能设置将始终首先从缓存中提供服务,然后尝试缓存任何更新。选择freshness意味着Service Worker会尝试通过网络访问文件,如果网络出现故障,则会提供缓存的副本。
【讨论】:
以上是关于503 正常(来自 serviceWorker)的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Ember 应用程序中处理来自服务器的 503 响应?
在 AWS EC2 ELB SSL 上运行 WordPress 时出现 503 错误