我有一个代码,每次都填写一个带有新内容的HTML文件,这个文件在我的网站上被调用...但是当我更改文件内容然后转到我的页面时,页面显示旧内容而不是新内容。我只有2页我这样做,其他都是静态的。
我怎样才能拥有"非缓存"对于那两个文件?
我的代码就像这样:
<?php
$fp = fopen('file.html', 'w');
fwrite($fp, $content);
fclose($fp);
?>
和另一个file.php我有
<html>
<head>...</head>
<body>
<some html>
<?php include(file.html); ?>
<some html>
</body>
</html>
感谢,
答案 0 :(得分:1)
确保为该文件发送一个标题,指定不应该缓存它;标题如:
Cache-Control: max-age=0, no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: Fri, 20 Mar 2014 00:00:00 GMT
如果这些文件是PHP文件,您可以通过在顶部添加如下所示的行来完成此操作:
<?php
header('Cache-Control: max-age=0, no-cache, no-store, must-revalidate');
header('Pragma: no-cache');
header('Expires: Fri, 20 Mar 2014 00:00:00 GMT');
?>
我在这里使用多个标头的原因是有多种方法可以控制缓存;如果你真的想确保从不缓存,你应该禁用所有表格(这种方式)。
如果它们纯粹是HTML文件,那么您需要使用this answer (add a header to each request using htaccess)
中描述的.htaccess魔法。为清楚起见,这将按如下方式进行:
代码:
<files "file.html">
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Fri, 20 Mar 2014 00:00:00 GMT"
</Files>