如何在create-react-app中为index.html指定Cache-Control标头

2024-04-30

我正在尝试遵循 create-react-app.dev 的指导生产构建文档 https://create-react-app.dev/docs/production-build/#static-file-caching:

为了向用户提供最佳性能,最佳实践是为 index.html 以及 build/static 中的文件指定 Cache-Control 标头。此标头允许您控制浏览器和 CDN 缓存静态资源的时间长度。如果您不熟悉 Cache-Control 的用途,请参阅本文以获取详细介绍。

对构建/静态资源使用 Cache-Control: max-age=31536000 ,对其他所有资源使用 Cache-Control: no-cache 是一个安全有效的起点,可确保用户的浏览器始终检查更新的 index.html 文件,并将所有构建/静态文件缓存一年。请注意,您可以安全地使用 build/static 的一年有效期,因为文件内容哈希已嵌入到文件名中。

在 index.html 中使用 HTML 标头是正确的方法吗 - 例如:

<meta http-equiv="Cache-Control" content="max-age: 31536000, no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">

(信用:这个堆栈溢出响应 https://stackoverflow.com/a/2068407/11664580 and 这个 YouTube 教程 https://www.youtube.com/watch?v=HiBDZgTNpXY)

如果是这样,我如何遵循文档的建议,即我应该为构建/静态资产设置“max-age=31536000,并为其他所有内容设置 Cache-Control: no-cache”?我不知道如何为不同的资产设置不同的控件。


正如埃文斯提到的,这个标头应该从服务器端设置。后端编程语言/服务器之间实际设置标头的方式有所不同。

这里有一些例子:

  1. Node.js res.setHeader('Cache-Control', 'no-cache');
  2. Nginx add_header Cache-Control no-cache;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在create-react-app中为index.html指定Cache-Control标头 的相关文章

  • 如何在react-router-dom v6中的路由组件中添加道具

    正如标题所述 我曾经有一个带有状态组件的页面 该组件根据 url 的更改获取不同的 props 现在 升级到React Router v6 我真的不明白如何让它再次工作 我确实知道现在解决这个问题的唯一方法是使用诸如 useNavigate
  • 绝对定位的 div 中的文本重叠

    在下面的代码片段中 div 元素 main gt div 相对定位并向左浮动 由于相对定位 div 元素 main gt div 彼此相邻放置 span 元素位于 div 元素下方 main gt div gt span span 元素绝对
  • dom 元素转换后 IE 显示水平滚动条

    我在网站的各个地方使用了以下 css http jsfiddle net uycq29mt 1 http jsfiddle net uycq29mt 1 a position absolute background red width 60
  • html 中的输入字段可以有多少个字符?

    html 输入字段中允许的 自然 字符数是多少 多谢 根据评论添加 我不需要通过邮寄或获取将其发送到服务器 我将通过 JS 解析字符串 因此 如果输入是无限的 就像 sAc 所说 这会给我带来两个进一步的问题 JS 最长的 String 可
  • SVG img keepAspectRatio Chrome

    当我对 SVG 文件中的图像使用preserveAspectRatio none 时 它 似乎在 Google Chrome 中不起作用 SVG 不会根据图像宽度和高度进行缩放
  • 父级嵌入框阴影与子级 div 重叠

    我遇到一个问题 子级 div 与父级框阴影底部重叠 父级有一个 max height w overflow y 滚动 任何帮助都会很棒 https i stack imgur com jQe0r png https i stack imgu
  • ckeditor 字体样式 13 px

    我之前曾问过相关问题 但在尝试了所有发生错误的可能性之后 我发现 在ckeditor中 如果您复制一些文本并粘贴它 它默认粘贴为 p style font size 13px 示例图片 HTML CODE p div p Original
  • Redux 状态在 mapStateToProps 中未定义

    我目前正在关注this http teropa info blog 2015 09 10 full stack redux tutorial html教程 我遇到了一些障碍mapStateToProps在下面的代码中 import Reac
  • React-redux useDispatch() 未捕获类型错误

    我正在尝试创建一个简单的组件来使用 React Redux 钩子分派操作useDispatch 我收到一个错误 我已将组件修剪到发生错误的位置 当调用 useDispatch 函数时会发生这种情况 import useDispatch fr
  • 多少个 div 标签太多了?

    在一个 HTML 文档中需要多少个 div 标签才会影响性能 在这种情况下 标签不嵌套 并且每个标签内的内容最少 背景颜色 图像 这个问题是上一个问题的后续问题 使用 JavaScript 绘制带有可点击点的线条 https stackov
  • Ionic 2 占位符文本样式

    我正在使用 Ionic 2 rc0 开发一个应用程序 并且整个应用程序中有几个仍然需要样式设置的输入字段
  • HTMLImageElement 作为 React Child 无效

    我正在尝试异步加载图像 并且仅在加载图像后才将其显示在 React 应用程序中 componentDidMount const img new Image img onload gt this setState originalImage
  • iOS 11 浏览器图像错误

    在 iOS 11 中滚动页面时出现以下错误 在 Firefox Safari 和 Chrome 中 在 Android 设备中 不会发生该错误 这些是背景图像 我不知道这是否是导致错误的原因 图 2 显示了图像在 Android 中的用途和
  • 使用模态表单 ajax 超出 HTMLFormElement.toString 的最大调用堆栈大小

    我想使用模态窗口中的 ajax 请求提交表单 单击此链接可打开该模式 a class btn btn primary i class fa fa edit i Write a review a 模态窗口 div class modal fa
  • html5 输入模式属性在表单之外不起作用?

    这把小提琴 http jsfiddle net 2gaw3 按预期工作 当用户输入无效的国家 地区代码时 它会显示警告 这另一个小提琴 http jsfiddle net y66vH 4 没有form元素 不起作用 看来输入的pattern
  • 使水平滚动条始终可见,即使底部不在视图中

    我将用一个片段来开始这个问题 该片段几乎显示了我想要完成的任务 wrapper overflow hidden display flex sidebar min width 200px background 333 color FFF co
  • 使用 html5 分块上传文件

    我正在尝试使用 html5 的文件 API 分块上传文件 然后在服务器端用 php 重新组装它 我正在上传视频 但是当我在服务器端合并文件时 大小增加了 并且它变成了无效文件 请注意 以下 html5 代码仅适用于 chrome 浏览器 在
  • 如何获取使用 .map 渲染的第一个元素的 ref?

    我需要在几行中显示视频 卡片 的缩略图 并重点关注第一个缩略图 我使用嵌套地图进行了显示 该代码基本上迭代视频数组并返回多行视频 我们如何关注第一个渲染的元素 我认为我们需要获得第一个要聚焦的元素的引用 但是我们如何在这里设置 ref 并在
  • span 和 iframe 正文中的宽度(以像素为单位)

    我需要知道 a 的宽度 nbsp 以像素为单位 以及是否取决于字体大小 另外 页面中不同元素的情况是否有所不同 还有 就是 nbsp 与常规不同 目的 nbsp 不间断空格 位于正常空格之上是为了防止单词之间出现换行 您可以使用多个 nbs
  • 如何修复超出最大调用堆栈大小

    有一个 MERN Firebase 应用程序并收到此错误和一堆 atdeepExtend deepCopy ts 71 RangeError Maximum call stack size exceeded getApps as apps

随机推荐