【发布时间】:2019-07-08 20:28:00
【问题描述】:
我正在构建一个 React 应用程序,它包含在 Amazon S3 上托管的单页应用程序中。
有时,我同时将更改部署到后端和前端,并且我需要所有浏览器会话开始运行新版本,或者至少那些会话在最后一个前端之后开始的那些-结束部署。
发生的情况是我的许多用户仍然在他们的手机上运行旧的前端版本数周,这与新版本的后端不兼容- 结束了,但他们中的一些人在他们开始下一个会话时得到了更新。
当我使用 Webpack 构建应用程序时,它会生成名称中包含哈希的捆绑包,而定义应该使用的捆绑包的 index.html 文件使用以下缓存控制属性上传:"no-cache, no-store, must-revalidate" . Service Worker 文件具有相同的缓存策略。
这个想法是用户的浏览器可以缓存所有内容,除了他们需要的第一个文件。计划很好,但我将 index.html 文件替换为较新的版本,并且我的用户在重新启动应用程序时不会重新获取此文件。
是否有明确的指南或解决该问题的方法?
我也知道 PWA 应该离线工作,所以它必须具有缓存以重用的能力,但这个想法并不能帮助我执行大规模的即时更新,对吧?
我必须这样做的最佳选择是什么?
【问题讨论】:
标签: reactjs caching updates service-worker progressive-web-apps