5

“网页变得越来越复杂,其中包含更多脚本、样式表、图像和 Flash。首次访问页面可能需要多个 HTTP 请求来加载所有组件。通过使用 Expires 标头,这些组件变得可缓存,这避免在后续页面视图中出现不必要的 HTTP 请求。Expires 标头通常与图像相关联,但它们可以而且应该用于所有页面组件,包括脚本、样式表和 Flash。”

正如在Yslow中所写。

我的问题是为具有多个样式表、Flash 标题、Javascript、图像、PDF、MS Excel 文件、PPT 等的网站设置过期标题需要多长时间?

如果我想对所有事物设置相同的过期时间。

4

2 回答 2

6

我所做的是将 CSS 和 JavaScript 文件的到期时间设置为较高的值,例如 1 或 5 年。当我更改样式表或 JS 文件时,我会更改其 URL 中的版本号,以防止从缓存中提供过时的文件。

看起来这也是 SO 所做的:

<link rel="stylesheet" href="http://sstatic.net/stackoverflow/all.css?v=e27c9b7474df">

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

<script src="http://sstatic.net/js/question.js?v=b05e8725a843" type="text/javascript"></script>

因此,当他们更改样式表时,他们会更改all.css?v=e27c9b7474dfall.css?v=some new version. question.jsjavascript 文件遵循相同的约定。但是文件名也可以,您可以调用您的 CSS/JS 文件all-1.css,然后将其更改为all-2.css等。版本号的实际格式取决于您,只要 URL 更改。

于 2010-07-29T12:53:58.093 回答
2

如果您的页面资源 (images/css/js) 通常不会更改并且是静态的,您可以将 expires 标头设置为1 year之类的东西。

对于页面本身,它真的取决于内容。如果您的内容更改非常频繁,您应该确保您的 expires 标头没有设置得那么大,否则您的访问者将收到陈旧的内容。

如果您考虑像 SO 本身这样的网站,内容更改如此频繁,以至于页面上的过期标题非常小。从标头看来,他们使用的最大年龄为 60 秒,并且在当前时间 1 分钟后有一个过期标头。

于 2010-07-29T12:46:15.160 回答