-1

我有一个代码,每次都用新内容填充 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>

谢谢,

4

1 回答 1

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');
?>

我这里之所以使用多个header,是因为有多种方式来控制缓存;如果你真的想确保它永远不会被缓存,你应该禁用所有表单(这种方式)。

如果它们是纯 HTML 文件,那么您需要使用一些 .htaccess 魔法,如本答案中所述(使用 htaccess 为每个请求添加标头)

为了清楚起见,这将按如下方式进行:

  • 在您的 file.html 目录中创建一个 .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>
于 2014-03-20T23:31:34.807 回答