【问题标题】:How to load web site without cache php/js?如何在没有缓存 php/js 的情况下加载网站?
【发布时间】:2015-08-06 14:27:50
【问题描述】:

我想每次都在没有缓存的情况下在每个浏览器中加载我的网站,所以我尝试通过 HTMl 和 PHP 从这里引导来完成它` How to control web page caching, across all browsers?

PHP

header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
header('Pragma: no-cache'); // HTTP 1.0.
header('Expires: 0'); // Proxies.



HTML

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />

在结果中我可以看到在响应中所有参数设置正确

但我仍然可以看到网站正在从缓存中加载旧的 img

当我启用浏览器“打开开发者工具时禁用缓存”功能时,我真的可以看到图像是如何从服务器正常加载的。

我的问题是如何避免这种情况?并确保每次都从服务器加载所有内容?

此外,我无法通过 htaccess 进行操作,因为我需要有类似 http://url.com/?noCache=true 的东西,如果它是其他任何东西,它应该从缓存中正常加载

【问题讨论】:

  • 你能在incognitoprivate模式下试试吗?
  • 图像直接从 Apache 提供,在这种情况下不会调用您的 php 代码。
  • 您提供的标题不会影响图像。只有在像 " /> 这样的每个图像上附加一个随机数才有可能
  • 我知道这个解决方案,但这是唯一为什么要这样做?我想也有一些全球解决方案
  • 请解释为什么投反对票?这个问题有什么问题?

标签: javascript php html caching


【解决方案1】:

我在制作支持多语言的 Facebook 选项卡应用程序时遇到了同样的问题,因此当用户单击以在语言之间切换时,它还会更改每种语言的 CSS 文件,因为我需要告诉浏览器重新验证缓存我使用此代码:

<IfModule mod_headers.c>
  Header set Cache-Control "no-cache, no-store, must-revalidate"
  Header set Pragma "no-cache"
  Header set Expires 0
</IfModule>

【讨论】:

    【解决方案2】:

    你可以试试这个我每天使用的代码没有问题...

    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); # Date In The Past
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); # Always Modified
    header("Cache-Control: no-store, no-cache, must-revalidate"); # HTTP/1.1
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache"); # HTTP/1.0
    

    然后在 html 头中我只有这个...

    <meta name="pragma" content="no-cache">
    

    这种 php/html 的组合对我来说非常有用。希望我的回答能帮助您解决问题!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-07
      • 1970-01-01
      • 1970-01-01
      • 2019-11-01
      • 1970-01-01
      • 2012-06-11
      • 1970-01-01
      相关资源
      最近更新 更多