缓存破坏反应

时间:2018-06-20 23:05:27

标签: html reactjs amazon-s3 amazon-cloudfront

本质上,如果我将新文件上传(通过拖放)到S3,则我的网站在访问时应该是最新的,而不是作为以前的版本进行缓存。目前,该行为可能是不一致的。 iOS通常不会在刷新时更新,而Chrome和Firefox可能会在刷新时正确更新。理想的情况是,iOS,Android,Chrome,Safari,Firefox,Edge都应在下次访问或下次刷新时(如果网站已经打开)都进行更新。

我已经读了一段时间的有关缓存清除的信息,但是我没有遇到一个易于理解的解决方案来显示React的更新的S3静态网站。

据我了解,yarn build已经自动生成新文件名:

{
  "main.js": "static/js/main.72dbb977.js",
  "main.js.map": "static/js/main.72dbb977.js.map",
  "static/js/0.d70486e8.chunk.js": "static/js/0.d70486e8.chunk.js",
  "static/js/0.d70486e8.chunk.js.map": "static/js/0.d70486e8.chunk.js.map"
}

由于名称是新的和不同的,因此应该加载新版本,并且缓存应该没有问题。但是事实并非如此。

我看到一些解决方案涉及create-react-app的默认registerServiceWorker。删除或注销它可能是解决方案,但是如果需要Service Worker怎么办?最好缓存页面和资产,除非仅当我上传更新时。

版本控制可能是一种替代方法,但是我想避免进行手动更新,而且我不确定100%如何通过React正常工作。

0 个答案:

没有答案