html - 由于缓存,网站 html 不会为用户更新

标签 html caching browser-cache

我正在制作一个网站,但我的用户遇到了网站缓存问题。我开发了我的网站并设置了 chrome 开发人员工具来禁用我的网站的缓存以进行开发。问题是当我发布新更改以促使我的所有用户由于浏览器缓存而无法获得更新时。当我在 friend 的计算机上手动删除我网站的缓存时,它可以工作,但我显然不能期望每个人都这样做以获得新的更新。无论如何我可以通过版本控制或其他方式解决这个问题?我环顾四周,但似乎找不到任何东西。

编辑:我知道我可以完全阻止缓存,但我不想完全阻止看起来像糟糕设计的缓存

最佳答案

缓存的资源是什么?我怀疑是 js/css 文件,处理这个问题的一个好方法是在这些资源的路径中添加一个带有版本的查询参数,以便在版本更改时强制浏览器加载新文件,如下所示:

<script type="text/javascript" src="your/js/path/file.js?v=1"></script>
<link href="/css/main.css?v=1" media="screen,print" rel="stylesheet" type="text/css">

并且当您发布网站的新更新时,按如下方式替换版本:

<script type="text/javascript" src="your/js/path/file.js?v=2"></script>
<link href="/css/main.css?v=2" media="screen,print" rel="stylesheet" type="text/css">

浏览器会认为该文件是一个新文件,并且会更新缓存。希望这会有所帮助。

为了禁用 html 缓存,您可以按如下方式将元标记添加到您的文件中:

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">

但这将完全禁用具有此元标记的 html 文件的缓存,我认为没有一种方法可以像处理 js/css 文件一样轻松地处理此问题,您可以设置元标记以在将来刷新 html虽然日期。如果您需要更多信息,这里有一篇文章描述了如何使用该元标记:

http://www.metatags.info/meta_http_equiv_cache_control

关于html - 由于缓存,网站 html 不会为用户更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30764510/

相关文章:

html - 使 div 填充父高度(jsfiddle)

html - 转换时 FFMPEG 在 HTML 中播放

html - 当我将自己的 3D 模型添加到场景查看器的 html 中的 <model-viewer> 标签时,模型不会加载

android - 如何缓存 fragment View

android - 整个应用程序中的位图缓存

javascript - Angular或Three.js不是从服务器提取图像,而是从浏览器缓存中提取图像

nginx 浏览器缓存指令带来 404 not found

javascript - 有没有办法为主页预加载完整的背景封面图片

java - 如何在 recyclerview 上缓存 Parcelable 模型

javascript - 如何在 google chrome DevTools 中禁用某些文件的缓存