【问题标题】:How to force cache cleared when user open website PHP用户打开网站PHP时如何强制清除缓存
【发布时间】:2019-05-10 05:13:06
【问题描述】:

我已经更新了我的网站的一些更改,但更改仅在浏览器缓存清除时显示,每天有超过 2000 位用户使用此网站,我如何在他们打开网站时强制清除缓存。

我有几个例子,但我不知道这些会起作用还是不像下面给出的那样。

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

AND 
clearstatcache(); function

【问题讨论】:

  • 只是为了澄清,您并没有真正清除浏览器缓存,您只是告诉浏览器不要缓存页面。这有点不同。缓存的页面仍然可以加载,因为它仍然存在。
  • @Aaron 我们不能在加载特定网站之前强制浏览器清除缓存
  • 所以您不想缓存 .js 或 .css 文件?还是还有其他类型?
  • @ElenaRoman 我只想当用户在 2019 年 5 月 10 日之后打开这个网站时,它必须显示来自服务器而不是来自缓存的所有数据,只有 css 更改
  • 我建议使用 javascript 来完成该任务。我不知道任何像这样工作的 PHP 函数,因为它是服务器端的。你可以试试:location.reload(true); Cache.key() 和 Cache.delete()

标签: php browser-cache


【解决方案1】:

如果你有 css 链接,只需像这样在 url 的末尾添加一个参数

浏览器根据 url 缓存资源,由于我们通过添加 ?version=1 来更改 url,它会下载新的 css。

为避免将来出现此问题,当您将任何 css/js 更改部署到生产环境时,请使用此模式更改 css 文件名称的脚本 style_timestamp.css style_1557467134.css

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-11
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    • 2017-05-19
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    相关资源
    最近更新 更多