7

我正在使用 ReactJS 开发我的项目,并使用它create-react-app来创建我的应用程序。构建项目后,我使用我的服务器为build文件夹提供服务。当我更新我的应用程序时,用户的浏览器仍然使用我的应用程序的旧版本,因为它缓存了静态文件(js、css)。那么有什么办法可以防止浏览器缓存静态文件呢?谢谢 !

4

3 回答 3

7

TLDR:您将希望通过 HTTP 标头发送缓存指令。

Cache-Control头有几个指令来控制缓存行为、过期和验证。

缓存行为:https ://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control

Cache-Control:公共资源可以被任何缓存缓存

Cache-Control:私有资源只能被浏览器缓存

Cache-Control: no-store 设置浏览器总是向服务器请求资源

Cache-Control: no-cache 这告诉浏览器缓存文件但不要使用它,直到它与服务器检查以验证我们是否拥有最新版本。此验证通过 ETag 标头完成。( https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag )

于 2018-07-25T17:38:27.270 回答
1

创建反应应用程序提供服务工作者,这会缓存客户端的各种文件。如果您愿意,您可以取消注册服务人员。但请注意,您将无法像在 PWA 中那样在离线模式下为您的应用提供服务

于 2018-12-24T14:06:00.293 回答
0

假设你禁用了你的 pwa,你可能想在你的 public/index.html 中添加这些行

<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
于 2021-07-08T14:06:13.697 回答