“网页越来越多 复杂的脚本,风格 它们上有工作表,图像和Flash。一个 首次访问页面可能需要 几个HTTP请求加载所有 组件。通过使用Expires标头 这些组件变得可缓存, 这避免了不必要的HTTP请求 在后续页面视图中。过期 标头通常与 图像,但它们可以而且应该是 用于所有页面组件,包括 脚本,样式表和Flash。“
如 Yslow 所述。
我的问题是,为具有多个样式表,Flash标题,Javascripts,图像,PDF,MS Excel文件,PPT等的网站设置expire标头需要多长时间?
如果我想在所有事情上设置相同的过期时间。
答案 0 :(得分: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=e27c9b7474df
更改为all.css?v=some new version
。 question.js
javascript文件遵循相同的约定。但是文件名也可以工作,你可以调用你的CSS / JS文件all-1.css
,然后将它改为all-2.css
等。只要URL改变,版本号的实际格式就由你决定。
答案 1 :(得分:2)
如果您的网页资源(images / css / js)通常不会更改且是静态的,您可以将expires标头设置为远远超出 1年的范围。
对于页面本身,取决于内容。如果您的内容经常更改,则应确保您的过期标头未设置为较大,否则您的访问者将收到过时的内容。
如果您考虑像SO本身这样的网站,内容会频繁更改,以至于页面上的过期标题非常小。从标题看起来,他们看起来使用了60秒的最大年龄,并且从当前时间开始有1分钟的过期标题。