【问题标题】:How to ask browsers to refresh (flush) the cache of my website?如何要求浏览器刷新(刷新)我网站的缓存?
【发布时间】:2014-08-17 20:42:18
【问题描述】:

我到处搜索,我只能找到我不明白的解决方案(我不是很擅长网络开发)。

如果我理解正确,最好的方法是对 javascript 和 css 调用进行版本控制。但我不明白我应该如何在我的网站或服务器中实现这一点。

有人对像我这样的初学者有想法或链接吗? (我想最简单的方法对我来说是最好的)

现在我的用户在使用网站时遇到问题,但在清除缓存后所有问题都消失了。这是个大问题。

谢谢大家。祝你有美好的一天。

【问题讨论】:

标签: javascript css caching browser web


【解决方案1】:

每次更新时只需在文件末尾添加一个新参数,例如

<script src="http://www.example.com/javascript.js?reload=1">

<script src="http://www.example.com/javascript.js?reload=2">

将被视为不同的文件,尽管实际上完全相同..

如果您永远不需要缓存,则使用脚本在每次页面加载时动态更改参数(添加时间戳是常用的方法,因为它永远不会意外重复)。

【讨论】:

  • 谢谢,我会这样做,使用以我的站点版本命名的变量来控制何时缓存和何时不缓存。希望一切顺利。再次感谢您。
【解决方案2】:

您可以使用 PHP header:

header('Cache-Control: no-cache, no-store, must-revalidate');
header('Pragma: no-cache'); 
header('Expires: 0');

你可以把它放在标题被调用的地方

或者使用meta标签代替:

HTML:

<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" />

这样你的浏览器就不会存储缓存了。

然而,缓存头部在元元素中是不可靠的;一方面,网站和用户之间的任何网络代理都会完全忽略它们。对于 Cache-Control 和 Pragma 等标头,您应该始终使用真正的 HTTP 标头。

【讨论】:

  • 感谢您的回答。我认为这是一个好主意,但是我仍然想在网站没有更新时使用缓存,所以我选择了理查德的答案让我这样做。
猜你喜欢
  • 2018-02-16
  • 2013-06-02
  • 1970-01-01
  • 2013-05-07
  • 2010-11-15
  • 2013-03-06
  • 1970-01-01
  • 2021-06-18
  • 1970-01-01
相关资源
最近更新 更多