在进行更改时清除客户端浏览器的缓存

时间:2017-11-14 09:43:44

标签: html caching browser-cache

在使用HTML / CSS开发网站时,在开发阶段,防止缓存是有意义的,因为查看网站的人会看到旧版本。在使用meta标签之前我已经看过线程了:

<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />enter code here

然而,这个剂量似乎与HTML5一起使用,同样我只想在我更新后清除客户端缓存。

例如,如果我在index.html中有一个图像并更新此图像(相同的文件名不同的内容),那么客户端将看到上一个图像

有没有办法可以对html页面进行版本设置,以便客户端浏览器缓存版本1然后重新加载如果我将html更改为版本2,缓存将被清空,并且将加载包含所有更改的新网站?

似乎在大多数网络开发中都需要这样,否则客户永远不会看到变化

3 个答案:

答案 0 :(得分:0)

您可以编辑索引页面中的> df2 label difference 1 test2 3 2 test2 -1 3 test3 -1 文件(或者在文件中加载的任何位置。在.css之后,您需要输入类似的查询?v = ...

所以这样:

旧文件:<link>

编辑后刷新缓存:<link href="/css/TestFile.css" rel="stylesheet"> v代表版本,你可以使用任何字符。

这会为访问该网站的所有人重置缓存,并让他们看到新版本而不是旧版本

答案 1 :(得分:0)

在我的情况下,我更改了一个特定的JS文件,我需要它在所有正在使用的浏览器中的最后一个版本。

我没有此文件的特定版本号,因此我只是哈希当前日期和时间(小时和分钟)并将其作为版本号传递:

<script src="/js/panel/app.js?v={{ substr(md5(date("Y-m-d_Hi")),10,18) }}"></script>

我需要每分钟加载一次,但您可以决定何时重新加载。

答案 2 :(得分:0)

在您的头部内容中添加以下内容 -

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