【问题标题】:Random versioning number with images to force cache带有图像的随机版本号以强制缓存
【发布时间】:2013-02-23 11:08:24
【问题描述】:

我很少有随机的 php 脚本,其中包含 HTML 代码的各个部分、样式表和图像。但最近我遇到了缓存问题。

我向样式表添加了一个随机版本号,以强制它成为一个新样式表。

    <script>document.write('<link rel="stylesheet" href="/css/fonts/rotate.php?dev=' + Math.floor(Math.random() * 100) + '" type="text/css" media="screen" />');</script> 

如何对图像做类似的事情?

<script>
document.write("<IMG SRC=" + "/images/rotate.php" + ">");

</script>

谢谢

【问题讨论】:

  • "/images/rotate.php?dev=" + Math.floor(Math.random() * 100) 有什么问题?
  • 没有错。
  • @Explosion Pills:没有,但是当你只能复制粘贴代码什么都不做时,很难弄清楚
  • @Explosion Pills 你能举个例子吗?
  • 我不相信你只能复制粘贴。 OP 可以看、学和应用。 @uriah,他刚刚做到了!

标签: php javascript html random version


【解决方案1】:

您可以将以下标头添加到 rotate.php

  header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
  header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
  header("Cache-Control: no-store, no-cache, must-revalidate"); 
  header("Cache-Control: post-check=0, pre-check=0", false); 
  header("Pragma: no-cache"); 

您也可以通过 .htaccess 文件尝试:

<Directory />
    <filesMatch "rotate.(html|htm|js|css|php)$">
    FileETag None
    <ifModule mod_headers.c>
    Header unset ETag
    Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
    Header set Pragma "no-cache"
    Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
    </ifModule>
    </filesMatch>
</Directory>

【讨论】:

  • 不是用户想要的方法,而是 +1 以获得明智的答案
  • 再说一次,7 月 26 日,这个日期有什么问题?! programmers.stackexchange.com/q/164696/18348
  • 很棒的约会你不这么认为吗? :D
  • 花了我一段时间来弄清楚如何编辑 php 文件以及将标题放在哪里,但我明白了,谢谢@Eldar
【解决方案2】:

您可以在末尾添加随机乱码参数。

"/images/rotate.php?dev=" + Math.floor(Math.random() * 101)

【讨论】:

  • 显然我误解了
  • 不,你刚刚发布了猜想作为答案
  • 我认为我删除了,现在不是推测。
  • 好的。现在是评论。如果您要提供示例代码,它可能是一个答案!而那个 -3 可能会消失。
  • 这仍然是低质量的,因为你没有给出一个例子(并且 OP 就在这个地方,因为他们需要更好地了解最佳实践)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-17
  • 1970-01-01
  • 1970-01-01
  • 2012-08-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多