CSS 缓存更新

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。 立即开始使用 价值 200 美元的免费积分!

css-caching

在关于 CSS 缓存文章许多精彩评论 中,我学到了很多东西,因此我想澄清一些误解并重点介绍其他用户分享的一些很棒技巧。

  • 是**浏览器**执行缓存,但**服务器**可以对此有所决定。 许多浏览器首先会询问服务器是否需要重新下载 CSS,服务器会做出响应。 有时服务器会以 304(未修改)响应,这将告诉浏览器只需使用其自己的缓存副本。 显然,如果您更改了服务器上的 CSS 并几乎立即刷新浏览器,服务器可能尚未赶上并会以 304 响应,而您的浏览器将使用其缓存副本。(感谢 Eric
  • 您可以更改服务器设置(如果您使用的是 Apache)以在 1 秒后“过期” CSS 文件。 参见第二条评论。 这将实现与时间戳相同的效果,因为浏览器会始终告诉浏览器它应该下载最新的 CSS。(感谢 Joshua
  • 如果您使用的是任何类型的版本控制软件,在 CSS 链接的末尾添加版本信息可能是处理此问题的一个更明智的方法。(感谢 August
  • 而不是将确切的日期和时间附加到 CSS 链接的末尾,将文件最后一次修改的日期和时间附加到末尾更明智。 尝试以下方法:**echo filectime(’/path/to/style.css’);** 这也返回时间戳而不是“人类可读”日期,这将消除 URL 链接中的空格。(感谢......所有人!)
  • 请记住,您可以在大多数浏览器中使用 SHIFT-Refresh 强制它重新下载所需的所有文件。 这很容易向您的客户解释!(感谢 Paul)