如何加载没有缓存php / js的网站?

时间:2015-05-25 06:53:05

标签: javascript php html caching

我想每次在每个浏览器中使用NO CACHE来浏览我的网站,所以我试图通过HTMl和PHP从这里引导来做到这一点 How to control web page caching, across all browsers?

PHP

header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
header('Pragma: no-cache'); // HTTP 1.0.
header('Expires: 0'); // Proxies.



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

并且在结果中我可以看到在响应中所有参数设置正确

enter image description here

但我仍然可以看到该网站从缓存中加载旧的img

当我使用浏览器功能时“打开开发人员工具时禁用缓存”我真的可以看到图像是如何从服务器正常加载的。

我的问题是如何避免这种情况?并确保每次都从服务器加载所有内容?

此外,我不能通过htaccess做到这一点,因为我需要有类似http://url.com/?noCache=true的东西,如果它不是它应该从缓存中正常加载

2 个答案:

答案 0 :(得分:0)

您可以尝试使用我每天使用的代码而不会出现问题...

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); # Date In The Past
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); # Always Modified
header("Cache-Control: no-store, no-cache, must-revalidate"); # HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); # HTTP/1.0

然后在html头部我只有这个...

<meta name="pragma" content="no-cache">

这个php / html的组合对我很有用。我希望我的回答可以帮助您解决问题!

答案 1 :(得分:0)

当我使用多语言支持制作Facebook Tab应用程序时,我遇到了同样的问题,所以当用户点击在语言之间切换时,它也会更改每种语言的CSS文件,我需要告诉浏览器重新验证缓存我使用这段代码:

<IfModule mod_headers.c>
  Header set Cache-Control "no-cache, no-store, must-revalidate"
  Header set Pragma "no-cache"
  Header set Expires 0
</IfModule>