4

据我所知:

ExpiresByType text/html "access plus 30 days"

将在存储内容 30 天后使浏览器缓存请求新鲜内容死亡。

但是有:

ExpiresByType text/html "modification plus 30 days"

浏览器缓存将在 LAST MODIFIED HEADER 的帮助下知道在修改 30 天之前不要请求新内容。

所以我的问题是,为什么不一直使用修改库,因为它似乎更有意义,或者我缺少什么?

4

1 回答 1

11

apache mod_expires 文档这样说:

效果上的差异是微妙的。如果使用M,则所有缓存中文档的所有当前副本都将同时过期,这对于始终在同一 URL 中找到的每周通知之类的东西很有用。如果使用A,则每个客户端的到期日期都不同;这对于不经常更改的图像文件很有用,特别是对于一组都引用相同图像的相关文档(即,图像将在相对较短的时间跨度内重复访问)。

其中M修改加A访问加。因此,您希望如何缓存以在所有浏览器中工作似乎是一个问题。您是否希望您的资源的缓存同时在所有浏览器中过期?或者您是否希望您的资源在所有浏览器中错开缓存到期?特别是,它归结为这里缓存的资源类型。

例如,如果我有一个页面,/live_shows.html除了每周一次,我只在一周开始时更新它以列出我将在我的酒吧中拥有的所有现场表演,然后我会去想用"modification plus 7 days"。因为它会每 7 天更新一次,不多也不少。

如果我有一个显示在/live_shows.html页面上的图像目录,但它们很少被更改,因为它们就像图标、横幅和项目符号,我会一直使用它们。然后我会想要制作它们"access plus 30 days",因为如果有任何更改,获取这些更改的更新并不是那么重要。

于 2012-09-27T17:50:26.100 回答