小编Leo*_*rde的帖子

更改 index.html 时强制更新已安装的 PWA(防止缓存)

我正在构建一个 React 应用程序,它包含在 Amazon S3 上托管的单页应用程序中。

有时,我同时向后端和前端部署更改,我需要所有浏览器会话开始运行新版本,或者至少那些会话在上次前端部署之后开始的会话.

发生的情况是,我的许多用户仍然在他们的手机上运行旧的前端版本数周,这与后端的新版本不再兼容,但他们中的一些人在他们开始时获得了更新下届会议。

当我使用 Webpack 构建应用程序时,它会生成名称中带有哈希值index.html的包,而定义应该使用的包的文件使用以下缓存控制属性上传:"no-cache, no-store, must-revalidate". Service Worker 文件具有相同的缓存策略。

这个想法是用户的浏览器可以缓存所有内容,执行他们需要的第一个文件。该计划很好,但我正在用index.html更新版本替换该文件,并且我的用户在重新启动应用程序时不会重新获取此文件。

是否有明确的指南或解决该问题的方法?

我也知道 PWA 应该离线工作,所以它必须具有缓存以重用的能力,但这个想法并不能帮助我执行大规模和即时更新,对吧?

我必须这样做的最佳选择是什么?

caching updates reactjs service-worker progressive-web-apps

4
推荐指数
1
解决办法
5484
查看次数