如何使用PHP清除浏览器缓存?
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Content-Type: application/xml; charset=utf-8");
您可以通过设置以下标头来删除浏览器缓存:
<?php
header("Expires: Tue, 01 Jan 2000 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
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");
?>
最近浏览器支持"Clear-Site-Data"头部,您可以清除不同类型的数据: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Clear-Site-Data
header('Clear-Site-Data: "cache", "cookies", "storage", "executionContexts"');
看起来你需要版本控制,这样当发生一些更改时,浏览器会捕获到新的内容,用户不需要清除浏览器缓存。
你可以通过子文件夹(例如/css/v1/style.css)
或文件名(例如:css/style_v1.css)
进行版本控制,甚至可以为你的网站设置不同的文件夹,例如:
www.mywebsite.com/site1
www.mywebsite.com/site2
www.mywebsite.com/site3
您可以使用 .htaccess 文件,甚至更改 httpd.conf 文件来重定向到您当前的应用程序。
如果是关于 一个 图片或者 页面:
<?$time = date("H:i:s");?>
<img src="myfile.jpg?time=<?$time;?>">
当您不想缓存时,可以在部分中使用 $time。因此,它将始终拉取新的图像。版本控制似乎是更好的方法,否则它可能会使您的服务器超载。请记住,浏览器缓存不仅对用户体验有好处,而且对您的服务器也有好处。
myfile.jpg?time=
,因为你没有打印出 $time。你需要这样写:<img src="myfile.jpg?time=<?print $time;?>"> - undefined