我正在开发一个 Web 项目(ASP.NET MVC 2,但这个问题并不重要)我想微调性能。
设置 clientCache 设置以缓存静态内容与图像完美配合,但是 Internet Explorer 8(或 9)仍在为 javascripts 和 css 执行 GET(“if-modified-since”)(因此响应 304由 IIS)。
我想避免 IE 对已经在缓存中的静态资源执行无用的 GET。
我已经使用 IE9 开发工具中的网络捕获工具和 Fiddler 验证了这一点。Chrome 正在按预期工作,从缓存中获取 javascript/css。
我添加到我的 web.config 的设置是:
<configuration>
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="165.00:00:00" />
</staticContent>
</system.webServer>
</configuration>
我怀疑问题的根源是我在 IIS 上为 application/x-javascript MIME 类型启用的动态压缩。我保留了默认设置,因此不会将缓存标头发送到客户端以获取 gzip 压缩的内容。