5

我们有一个相当大容量的 IIS7.0 站点(每天大约 100 万个请求),其中很多是图像/CSS/JS。

作为减少这种情况的一种快速方法,我正在考虑将通用 http 响应标头设置为将来以某种固定日期方式使 Web 内容过期,并且想知道我们可能会遇到哪些缺点。

查看由设置导致的 web.config 更改,它添加:

<staticContent>
    <clientCache cacheControlMode="UseExpires" cacheControlMaxAge="1.00:00:00" httpExpires="Thu, 01 Oct 2020 00:00:00 GMT" />
</staticContent>

我担心的是,如果我们想在设置后更改其中一个 CSS/JS/图像,客户端不会接受更改,虽然图像可能不会更改,但 CSS/JS 肯定会。这是否意味着我们应该只为包含图像的文件夹设置此功能?或者这是否意味着我们需要为我们的 CSS/JS 引入版本化 URL?

4

1 回答 1

7

您应该始终缓存静态内容(图像、CSS、JS)

即使被缓存,大多数浏览器仍然会礼貌地询问服务器是否有更新的版本(If-Modified-Since),服务器会回复 Not Modified。(例如 IE 默认为“自动检查新版本的页面”)

一个警告:如果您的服务器和客户端之间还有其他代理,那么这些代理可能会严格选择遵守您的缓存设置,并且可以提供“陈旧”内容,因此您需要对缓存的最佳持续时间进行一些思考.

于 2011-10-10T15:24:26.443 回答