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

5 compression iis-7

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

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

我在我的web.config中使用doDynamicCompression并且很少混淆如何设置这些?希望得到一些帮助

注意:使用的参考是http://www.iis.net/ConfigReference/system.webServer/httpCompression

sea*_*ean 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>
Run Code Online (Sandbox Code Playgroud)

这也可以在输出缓存下从IIS管理器配置,但GUI不执行的操作是设置'location'属性.将其设置为"Any"将设置Cache-Control:public.

你可以在这里阅读更多相关信息.

  • +1没有其他人似乎提到位置标志 (3认同)

rma*_*ter 1

我想您已经明白了这一点,但请阅读此处有关在 IIS 中设置内容过期的信息。

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