【问题标题】:HTML - Cache control max ageHTML - 缓存控制最大年龄
【发布时间】:2011-09-23 03:05:13
【问题描述】:

我希望始终向用户展示最新的网站内容,同时也希望能够快速加载。通过研究,我发现有人建议使用缓存来加快加载速度。

那么我需要在我的网站中添加什么来在 3 天后“覆盖”缓存以显示最新内容?

【问题讨论】:

  • 你用wordpress吗?德鲁巴?你有数据库吗?缓存并不像你想象的那么枯燥无味……
  • 对不起。我正在使用一个没有 CMS 的简单 PHP 网站。

标签: html cache-control


【解决方案1】:

根据YSlow recommendations,您可以配置您的网络服务器以将ExpiresCache-Control HTTP 标头添加到响应中,这将导致用户代理在指定的持续时间内缓存响应。

【讨论】:

    【解决方案2】:

    执行此操作的方法不止一种 - 但您需要准确考虑需要缓存的内容和不需要缓存的内容。最大的速度提升可能来自确保您的资产(css、图像、javascript)被缓存,而不是 html 本身。然后您需要查看各种因素(这些资产多久更改一次,您将如何强制用户下载您更改文件的新版本?)。

    通常作为网站发布过程的一部分,新文件(更新的文件)被赋予一个新的文件名,以强制用户浏览器重新下载文件,但这只是一种方法。

    您应该看看 apache mod_expire,以及使用 .htaccess 文件设置资产到期时间的能力。

    http://www.google.com/?q=apache+cache+control+htaccess#q=apache+cache+control+htaccess

    【讨论】:

    • 我是否理解正确,我只需将此代码添加到我的服务器 .htaccess 文件以允许缓存文件 3 天? # 3 DAYS <FilesMatch "\.(php|xml|css|js|gif|jpg|jpeg|png|ico|swf)$"> Header set Cache-Control "max-age=259200, proxy-revalidate" </FilesMatch> 3 天后它都会重新加载,对吧?来源:askapache.com/htaccess/apache-speed-cache-control.html
    • 答案假设我使用 Apache 作为服务器,如果我使用的是 Ruby 应用程序怎么办?这行不通
    • 这是一篇博文,清楚地解释了如何在 html 和你最喜欢的编程语言中设置缓存头 docs.fastly.com/guides/22951283/26628787
    【解决方案3】:

    如前所述,Expires 和 Cache-Control Headers 通常是合并有关信息生命周期信息的最佳方式。

    由于客户端在解释这些信息方面不是很可靠,因此大多数人更喜欢具有缓存功能(如 squid、varnish 或此类解决方案)的代理。您还需要考虑是否只想缓存静态内容(如图像、样式表等)或动态生成的内容。

    【讨论】:

      【解决方案4】:

      Cache-Control 标头在 HTTP 1.1 中用于控制缓存的行为。 max-age 指令用于指定(以秒为单位)内容在过时之前的最大年龄(即,内容在一段时间内不会改变)。因此,如果您知道您的内容在 3 天内不会更改,您希望您的服务器添加以下 HTTP 标头:

      Cache-Control: max-age=259200
      

      (259200 = 60s x 60m x 24h x 3d)

      要在 PHP 中执行此操作,请将此行添加到您的输出中:

      header('Cache-Control: max-age=259200');
      

      阅读此处了解有关标头功能的更多信息:

      【讨论】:

      • 对于 IIS,您可以使用 [-][d.]hh:mm:ss[.ff] 格式在 web.config 中为静态内容(保持动态内容保持动态)设置它。它应该在<system.webServer><staticContent><clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="3.00:00:00" /></staticContent></system.webServer>
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-30
      • 1970-01-01
      • 2017-05-26
      • 2017-11-09
      相关资源
      最近更新 更多