我正在尝试做一些我认为非常简单的事情。获取IIS 7,以告知客户端他们可以在一定时间内(例如24小时)缓存我站点上的所有图像。

我已经尝试过http://www.galcho.com/Blog/post/2008/02/27/IIS7-How-to-set-cache-control-for-static-content.aspx的步骤,但无济于事。我仍然收到返回到304s的请求到服务器。

有人有办法吗?我有一个图形密集的网站,每次用户请求页面时,我的用户都会受到重击(我的服务器也是如此)。奇怪的是,这些图像似乎在Firebug中显示“Cache-Control private,max-age = 3600”,但是当我按F5键时浏览器仍在请求它们。

最佳答案

不幸的是,如果要设置Cache-Control header ,则IIS7 UI中没有任何东西可以做到这一点。

但是,您可以将此web.config放在要设置它的文件夹或站点的根目录中:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <staticContent>
      <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
    </staticContent>
  </system.webServer>
</configuration>

这将通知客户端在该文件夹和所有子文件夹中缓存内容7天。

您也可以通过appcmd.exe编辑IIS7元数据库来做到这一点,如下所示:

\ Windows \ system32 \ inetsrv \ appcmd.exe
设置配置“默认网站/文件夹”
-section:system.webServer / staticContent
-clientCache.cacheControlMode:UseMaxAge

\ Windows \ system32 \ inetsrv \ appcmd.exe
设置配置“默认网站/文件夹”
-section:system.webServer / staticContent
-clientCache.cacheControlMaxAge:“7.00:00:00”

关于asp.net - IIS7缓存控制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/642954/

10-10 01:01