缓存控制标题&浏览器缓存IIS7

时间:2009-09-02 14:41:42

标签: iis-7 compression

我在IIS7的网站上使用Google Page Speed,我想知道如何设置

利用浏览器缓存 - 以下资源缺少缓存到期 利用代理缓存 - 考虑向以下资源添加“Cache-Control:public”标头。

我在web.config中使用doDynamicCompression并且很难弄清楚如何设置这些?希望得到一些帮助

注意:正在使用引用http://www.iis.net/ConfigReference/system.webServer/httpCompression

2 个答案:

答案 0 :(得分:20)

在web.config中的system.webServer下设置例如

<caching>
            <profiles>
                <add extension=".png" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" location="Any" />
                <add extension=".jpg" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" location="Any" />
                <add extension=".gif" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" location="Any" />
            </profiles>
        </caching>

这也可以在输出缓存下从IIS管理器配置,但GUI不做的是设置'location'属性。将其设置为“Any”将设置Cache-Control:public。

您可以详细了解here

答案 1 :(得分:1)

我想你已经想到了这一点,但请阅读IIS here中设置内容过期的内容。

请注意,这仅适用于IIS提供的静态内容。如果您要为动态内容(ASPX,PHP,ISAPI等)设置缓存标头,则需要在应用程序中生成自己的Expires和Cache-Control标头。 IIS(非常正确)不会尝试将缓存控制头应用于可能包含Set-Cookie标头或私有数据的动态页面。默认情况下,ASP和ASP.net会自动为所有页面设置“Cache-Control:private”,但您可以基于每个响应覆盖该行为。