在IIS 7.5中,我将cacheControlMaxAge设置为一年如此
<location path="Content/Images">
<system.webServer>
<staticContent>
<clientCache cacheControlCustom="public" cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" />
</staticContent>
</system.webServer>
</location>
根据本指南:Setting Expires and Cache-Control: max-age headers for static resources in ASP.NET
但是,Google PageSpeed工具仍然表示文件未缓存:
The following cacheable resources have a short freshness lifetime. Specify an expiration at least one week in the future for the following resources:
* https://local.example.com/Content/Images/image1.png (expiration not specified)
(etc)
为什么说“未指定过期”?
整个网络应用程序都是通过https提供的,这是一个因素吗?
答案 0 :(得分:5)
我通过将Content/Images
指定的路径更改为Content
<location path="Content">
<system.webServer>
<staticContent>
<clientCache cacheControlCustom="public"
cacheControlMode="UseMaxAge"
cacheControlMaxAge="365.00:00:00" />
</staticContent>
</system.webServer>
</location>
所以它是固定的,但路径的改变并不能说清楚问题究竟是什么。
答案 1 :(得分:0)
我发现Google PageSpeed在某些情况下需要一些时间来赶上&#39;你最近做出的改变。确保您已完成整页刷新并点击PageSpeed本身的刷新按钮。如果做不到这一点,在Firefox上使用Firebug似乎总能在网络标签中给出准确的结果。单击文件旁边的加号图标并检查响应标头。