我们最近部署了一个使用Ionic + recently的生产应用。不幸的是,我们没有为资产*.js & *.html设置更新模式。我们已经部署了ngsw-config和ngsw.json的新版本,其中包括一个更新资产的方法。
如果用户已经在他们的手机上安装了我们的应用程序(即主屏幕上的快捷方式) ->,那么他们的ngsw-config或ngsw.json更新需要多长时间?
它会自动更新吗?
发布于 2019-12-08 07:14:48
根据https://angular.io/guide/service-worker-devops#update-checks
每次用户打开或刷新应用程序时,锐角服务工作者都会通过查找ngsw.json清单的更新来检查应用程序的更新。如果找到更新,则会自动下载和缓存更新,并在下次加载应用程序时提供该更新。
这意味着,当用户下次打开应用程序时,他应该得到更新的内容/应用程序,因为服务器上有一个新版本的ngsw.json。
旁注:我自己还没试过呢。我唯一不确定的是,即使您在ngsw.json文件上显式地设置了Cache-Control: max-age...头,服务工作者是否总是获取新的ngsw.json文件。我认为它将拥有一个强有力的保证的应用程序的完整性。但是,我建议你事先试一试。
*(下一次注意)如果用户已“在主屏幕上添加”先前版本,当他再次打开该应用程序时,即使新版本已经可用,浏览器仍会呈现旧应用程序。这是因为服务工作者在此期间检查对ngsw.json的更新,并在后台下载更新的版本。如果用户第二次关闭并打开应用程序,即新版本将在何时实际呈现。我在某个地方读到(但我忘了哪里),“新版本可用,您想要刷新吗?”消息可以在新版本可用后第一次打开应用程序时显示,但这不在这个问题的范围之内,所以我不会深入研究。
https://stackoverflow.com/questions/59232975
复制相似问题