ReactJS:如何防止浏览器缓存静态文件?

2024-01-11

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


TLDR:您需要通过 HTTP 标头发送缓存指令。

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

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

缓存控制:公共 资源可以被任何缓存缓存

缓存控制:私有 资源只能被浏览器缓存

缓存控制:无存储 设置浏览器始终向服务器请求资源

缓存控制:无缓存 这告诉浏览器缓存该文件,但在与服务器检查以验证我们拥有最新版本之前不要使用它。此验证是通过 ETag 标头完成的。 (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ReactJS:如何防止浏览器缓存静态文件? 的相关文章

随机推荐

  • JDK21和 Flowable 7.0.0

    JDK21和 Flowable 7 0 0 一 Flowable 二 项目搭建 1 依赖包 2 数据库 3 资源文件 1 YML配置文件 2 Drools kbase
  • 序列模型(4)—— Scaling Laws

    本文介绍 LLM 训练过程中重要的 Scaling Laws 这是一个 经验规律 指出了 固定训练成本 总计算量FLOPs C C C 时 如何调配模型规模 参数量 N N
  • golang中有没有一种有效的方法来计算执行时间?

    我正在寻找计算 go 执行时间的最佳方法 func main start time Now time Sleep time Second 2 something doing here elapsed time Since start fmt
  • PHP 正则表达式:找不到结束分隔符“^”

    我在使用正则表达式时遇到了一些麻烦 这是我的代码 pattern 0 9 if preg match pattern input echo yes else echo nope 我运行它并得到 警告 preg match function
  • 正则表达式检查 Facebook 视频 URL

    我尝试使用正则表达式检查 Facebook 视频网址 这是有效的 Facebook 视频 URL 示例 https www facebook com video php v 100000000000000 https www faceboo
  • Spark中高效计算top-k元素

    我有一个类似于以下内容的数据框 key thing value u1 foo 1 u1 foo 2 u1 bar 10 u2 foo 10 u2 foo 2 u2 bar 10 并希望得到以下结果 key thing sum value r
  • Chrome 版本 44 在 selenium 测试中存在一些问题

    我正在使用 Selenium 和 Chrome 编写一个测试 昨天当我的 Chrome 从 43 更新到 44 时 我的测试遇到了一些关于 action sendkey arrow down 等的问题 我尝试卸载 Chrome 并安装 Ch
  • MySQL:一位的最小数据类型

    我想在表中添加一列 其中包含两个值 1 或 0 MySQL 中存储数据的最小数据类型是什么 A TINYINT 1 可以包含之间的数字 127 to 127 您可以使用位 1 http dev mysql com doc refman 5
  • 在 gradle.build 中使用 fatjar 插件时如何指定主类

    我有兴趣在单个可执行 jar 文件中构建一个包含所有模块依赖项和外部 jar 的单个 jar 我将能够使用该文件运行java jar myApp jar 我有模块 A 它依赖于模块 B 目前我正在使用 gradle 我的build grad
  • 如何以特定于区域设置的方式格式化不完整的日期和时间

    如何以特定于区域设置的方式格式化不完整的日期和 或时间 我有一个日期 时间存储在一组 7 个字符串中 dayOfWeek 一周中的哪一天 1 7 dayOfMonth 该月的哪一天 1 31 monthOfYear 一年中的月份 0 11
  • CSS焦点子元素改变父元素

    我想设计一个在表单字段内具有标签和输入的表单 当我在输入内写入内容 可能带有焦点 时 我希望边框亮起一些蓝色 现在我有这样的东西 HTML div class login form field div
  • removeFrom* 不起作用并且没有错误

    我有一个我认为很简单的问题 但无法解决 由于某种原因 我有一个使用removeFrom save 的控制器 它不会抛出任何错误 但不会执行任何操作 跑步 Grails 1 2 Linux Ubuntu 删除以下应用程序以重现该问题 我通过
  • 如何弹出 Outlook 提醒并保持在其他窗口之上

    如何制作 Outlook 提醒弹出窗口并保持在其他窗口之上 网上查了好久 我无法找到这个问题的满意答案 使用 Windows 7 和 Microsoft Outlook 2007 当提醒闪烁时 它不再提供模式框来吸引您的注意力 在工作中 安
  • DBAccess 创建自定义 DBAccessSettings

    我正在测试 DBAccess 以查看是否可以在项目中使用它 我在更改 sqlite 文件的位置时遇到问题 我希望它位于缓存目录中 这是我到目前为止在 AppDelegate m 中编写的代码的一部分 DBAccessSettings get
  • C++11 中的 3 条默认成员弃用规则

    根据下面广为人知的表格 当用户提供一个或多个复制赋值函数 复制构造函数和析构函数时 C 11 中不推荐自动编译器生成默认复制构造函数和复制赋值 红色单元格表示弃用 考虑到 三法则 这是完全有道理的 然而 该表显示 在用户提供的复制构造函数
  • 类型NotPresentExceptionProxy

    从 Surefire 2 6 升级到 Surefire 2 13 时 我得到TypeNotPresentExceptionProxy运行我的单元测试时 java lang ArrayStoreException sun reflect an
  • jQuery:无限fadeOut $fadeIn 效果?

    我想使用动画标签fadeOut and fadeIn影响 但该代码会冻结浏览器 如何解决这个问题 function animateLabels label orange font fadeOut 1000 function this fad
  • C# 中的标准正态分布 z 值函数

    我一直在看 Jeff Atwood 最近发表的博客文章替代排序顺序 https blog stackoverflow com 2009 10 alternate sorting orders 我尝试将帖子中的代码转换为 C 但遇到了问题 据
  • 有没有 jquery 插件可以在 HTML 页面中保留常见的页眉和页脚? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • ReactJS:如何防止浏览器缓存静态文件?

    我正在使用 ReactJS 开发我的项目 并且使用create react app创建我的应用程序 构建项目后 我使用我的服务器来服务build文件夹 当我更新我的应用程序时 用户的浏览器仍然使用我的应用程序的旧版本 因为它缓存静态文件 j