不确定这是潜在的错误还是我做错了什么。
我正在使用基于 cli 的应用程序,@angular/serviceworker 5.1.0
@angular/cli 1.6.0
软件的实现完全由书
我将尝试描述发生了什么:
考虑一个正在运行 Service Worker 的应用程序。SW 缓存来自 的数据ngsw.json
。
现在,我将ng build --prod
使用新的 budle 哈希部署一个新文件。
当前运行的应用程序的 ServiceWorker 将加载旧的缓存文件,除非明确要求通过SwUpdate
服务进行更新。没关系。
但事情就是这样。打开新选项卡并加载应用程序的新实例后,它仍会加载旧文件。在网络日志中没有获取 new ngsw.json
。
两个选项卡是否使用相同的 ServiceWorker?
ServiceWorker 如何知道何时检查 new ngsw.json
?
最奇怪的事情:有时按下 F5 后,ServiceWorker 仍在加载旧文件。有时它会加载新文件。有时它会尝试使用旧哈希获取文件并失败(404)!
到目前为止,我还没有弄清楚任何模式。
浏览器缓存是否可能导致问题?我尝试将服务器响应标头添加到no-cache
并过期:0 但没有区别。