如何防止 php 站点的浏览器缓存

我有一个在云服务器中运行的php站点。每当我添加新文件css,js或图像时,浏览器正在加载存储在缓存中的相同旧js,css和图像文件。

我的网站有一个文档类型和元标记,如下所示

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <meta http-equiv="Page-Enter" content="blendTrans(Duration=1.0)">
  <meta http-equiv="Page-Exit" content="blendTrans(Duration=1.0)">
  <meta http-equiv="Site-Enter" content="blendTrans(Duration=1.0)">
  <meta http-equiv="Site-Exit" content="blendTrans(Duration=1.0)">

由于上述文档类型和元代码,我正在加载浏览器中缓存的相同文件而不是新文件


答案 1

试试这个

<?php

header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>

答案 2

在这里,如果你想通过HTML控制它:请按照下面的选项1:

<meta http-equiv="expires" content="Sun, 01 Jan 2014 00:00:00 GMT"/>
<meta http-equiv="pragma" content="no-cache" />

如果你想通过PHP控制它:按照下面的选项2进行操作:

header('Expires: Sun, 01 Jan 2014 00:00:00 GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', FALSE);
header('Pragma: no-cache');

选项2总是更好,以避免基于代理的缓存问题。


推荐