小蚂蚁 发表于 2021-10-2 11:23:33

IIS中User-mode caching引起的Cache-Control不为public问题的解决方法




web.config中对应的配置如下:

<configuration>
    <system.webServer>
      <caching>
            <profiles>
                <add extension=".css" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="00:00:30" />
                <add extension=".js" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="00:00:30" />
            </profiles>
      </caching>
    </system.webServer>
</configuration>
浏览器中看到的效果:


解决方法:
1、禁用User-mode caching,只用Kernel-mode caching。


2、在web.config中加上cacheControlCustom="public"

<configuration>
    <system.webServer>
      <staticContent>
            <clientCache cacheControlCustom="public" cacheControlMode="UseMaxAge" cacheControlMaxAge="300.00:00:00" />
      </staticContent>      
      <caching>
            <profiles>
                <add extension=".css" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="30:00:30" />
                <add extension=".js" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="30:00:30" />
            </profiles>
      </caching>
    </system.webServer>
</configuration>

https://www.uoften.com/serverhost/winhost/20180415/80867.html
页: [1]
查看完整版本: IIS中User-mode caching引起的Cache-Control不为public问题的解决方法