1

我们希望为使用过的图像、css 和 javascript 设置过期标头以提高页面速度,但我们知道修改 css 或 js 脚本时的缓存问题。

是否可以在加载 xhtml 的文件中添加元标记或其他标记,告诉浏览器刷新每个元素,无论在现有图像、css 或 js 上设置了什么缓存?

4

3 回答 3

2

您可能想要做的是版本化您的静态内容。假设您有一个 main.css 文件,那么您可以通过将其重命名为 main_0.css 来对其进行版本控制(只是一个示例),然后您可以将缓存过期设置为一年。如果您需要更新 main.css,只需增加版本号并更新您的引用。然后所有客户端都将获得最新版本。

有几种解决方案可以为您执行此版本控制,但这是基本原则。

在遇到与缓存相关的问题时,我一直发现这些资源非常有用:

  1. http://code.google.com/intl/no/speed/page-speed/docs/caching.html
  2. http://code.google.com/intl/no/speed/page-speed/docs/filters.html

希望这可以帮助。

编辑

这是我上面解释的版本控制解决方案(mod_pagespeed):

  1. http://code.google.com/intl/no/speed/page-speed/docs/filter-cache-extend.html
于 2011-05-05T08:47:13.543 回答
2

据我所知,没有这样的捷径。

即使是这样——又有什么意义呢?发送这样的标头首先会破坏未来到期标头的目的。

设置过期标头时,您需要向元素添加某种资产版本控制,例如<link rel="stylesheet" href="css/style.css?v=2">

更改资产的路径将实现相同的目标。

是的,这很麻烦。但是缓存失效是一个难题,确实没有简单的解决方法。

于 2011-05-05T08:52:15.213 回答
1

是否可以在加载 xhtml 的文件中添加元标记或其他标记,告诉浏览器刷新每个元素,无论在现有图像、css 或 js 上设置了什么缓存?

据我所知不是。

我们希望为使用过的图像、css 和 javascript 设置过期标头以提高页面速度

在我看来,这是一件好事。

但是我们在修改 css 或 js 脚本时知道缓存问题。

如果您要对 CSS 或 JS 进行重大更改,那么无论如何您都应该进行更改。通过将新的 CSS 和 JS 放在不同的路径上来管理这些更改,并在进行更改时更改 HTML 中的引用。这使您可以:

  • 立即推出/返回
  • 通过动态生成这些引用进行选择性部署
  • Web 日志现在提供清晰的审计线索,用于跟进错误报告
  • 避免 CSS 和 JS 的短期缓存问题
于 2011-05-05T08:47:32.903 回答