deployment - 如何使 S3 Cloudfront 上部署的 Gatsby 网站上的服务工作者缓存失效?
问题描述
我正在建立我的第一个 Gatsby 网站。我们将它托管在 AWS S3 上。我们也使用gatsby-plugin-offline
.
到目前为止,我无法找到一个很好的解决方案来解决如何在新部署后使缓存失效。
即使我手动取消注册 sw.js 服务工作者并通过 Devtools -> 应用程序 -> 清除存储清理站点数据,浏览器仍会继续加载缓存版本(缺少添加的页面,显示旧文本内容等)。
对于部署,我使用amplify
.
部署新版本时如何使旧缓存失效?
谢谢。
解决方案
您是否检查了gatsby-auth-starter-aws-amplify的放大配置?离线插件在此启动器中处于活动状态,它是部署 gatsby 以放大的推荐启动器。
另一种解决方案是将s3 插件与 aws-cli 一起使用
Gatsby 的缓存文档解释了 Gatsby 正常工作的缓存规则。常见问题是由 HTML 页面的缓存引起的(HTML 文件中的 cache-control 标头应该是cache-control: public, max-age=0, must-revalidate
)
推荐阅读
- swift - 循环自日期以来的天/周/月/年(swift)
- excel - 运行时错误“424”:使用 ThisWorkbook 时需要对象错误
- spring-boot - 为不同的模块向 Maven 项目添加非托管依赖项失败
- objective-c - WebRTC:通过 CGDisplayStream (h264/vp8/vp9) 进行屏幕共享的编码性能不佳
- html - 使用 CSS :not() 定位元素中的选定内容
- docker - WSL:无法在 WSL 2、Ubuntu 18.04 上安装 docker
- python - 尝试使用 Python 创建 Google 快讯时电子邮件或密码不正确
- git - 如何将克隆的 git 存储库 zip 文件添加到 Azure devops?
- c++ - 如何在 C++ 中删除新数组?
- javascript - 在从后端填充数据的 SELECT 上添加额外的选项标签——不起作用