我们有一个带url路由的Webforms项目。我已将图像和css文件的异常路由定义为
routes.Add("IgnoreImages", new Route("img/{*pathInfo}", new StopRoutingHandler()));
routes.Add("IgnoreCss", new Route("css/{*pathInfo}", new StopRoutingHandler()));
所以IIS应该直接提供静态文件,并且应该绕过路由。
使用Fiddler检查图像的响应时,Cache标题下的唯一键是Date。缺少的是Cache-control:max:age键。如何为静态文件指定缓存策略?该应用程序在IIS7.5上运行。
答案 0 :(得分:27)
解决方案是使用web.config文件中的system.webserver
部分来配置服务器缓存(和压缩)。这是一个起点:http://www.iis.net/ConfigReference/system.webServer/staticContent/clientCache
示例:
<configuration>
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge"
cacheControlMaxAge="1.00:00:00" /> <!-- 1 day -->
</staticContent>
</system.webServer>
</configuration>
答案 1 :(得分:14)
Dario的回答让我大部分时间,但我必须向<clientCache>
,cacheControlCustom="public"
添加一个属性,否则IIS不会将Cache-Control标头发送到浏览器。请参阅this answer。