如何清除浏览缓存 - index.html 卡在缓存中

How to purge browse cache - index.html stuck in cache

我在 S3 中托管了一个 ReactJS 应用程序,并使用 Cloudflare 作为 DNS 和 CDN。

我有一个大问题,许多访问者在他们的浏览器缓存中存储了旧版本的应用程序(仅限 index.html)。我已经在最新版本中配置了高级缓存控制,但是无法访问,因为显示的是旧版本。

静态文件 (CSS, JS) 版本控制是使用 create-react-app 完成的,但我发现 index.html 文件 是唯一缓存的 .

我现在该怎么办?
现在如何清除访问者缓存?

PS:我已经清除了 Cloudflare 缓存并设置了绕过缓存的规则。

更好的方法是,每当您的构建更改时,更改 JS link 以便浏览器从服务器下载新版本,无论用户的或服务器的缓存策略。

例如,Stack Exchange 的做法是,每当构建发生变化时,HTML 会从以下内容变为:

<script src="https://cdn.sstatic.net/Js/stub.en.js?v=1bac371ac78f"></script>

<script src="https://cdn.sstatic.net/Js/stub.en.js?v=f83b2f654"></script>

每当有新构建时,您可以在 HTML 中随机化查询字符串中的参数,并且在您的服务器上仍然只有单个(最新)构建 .js

很遗憾,没有这样的解决方案。

唯一的方法是等到用户缓存清空(过期)。

It is technicaly impossible to clear users cache from external resource (JS script etc.), due to security reasons.

此外,如果可能的话,没有办法告诉用户下载最新的 JS(包括缓存清除代码),因为他们有旧版本的 index.html(包括 link 到那些 .js 文件)。

你是筹码,唯一的选择就是等待。