在IIS7中,我有能力设置缓存选项。这些选项会添加到我的web.config中......
<caching maxCacheSize="262144">
<profiles>
<add extension=".png" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="00:00:30" />
<add extension=".jpeg" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="00:00:30" />
<add extension=".jpg" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="00:00:30" />
<add extension=".css" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="00:00:30" />
<add extension=".js" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" duration="00:00:30" />
</profiles>
</caching>
但是,我也有“缓存”的以下内容
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="90.00:00:00" />
<remove fileExtension=".js" />
<mimeMap fileExtension=".js" mimeType="text/javascript" />
</staticContent>
这两个配置有什么区别?它们都嵌套在<system.webServer>
标记中,因此它们对IIS7都有效。
另外,使用这些时的正确方法是什么?我目前只使用这是我的静态资源文件夹。我不会在其他任何事情上使用此缓存。
提前致谢。
答案 0 :(得分:4)
主要区别在于
第一个用于服务器端缓存动态输出,例如aspx页面(基本上将页面输出保留在内存中以用于后续请求)。正如@ artem-vertiy的回答指出的那样,将它用于静态内容毫无意义。
第二个是'互联网端':它是通过编写标准响应标头实现的,它告诉客户端浏览器和公共代理如何管理缓存文件。
答案 1 :(得分:1)
我注意到人们常常混淆上面的内容,并在第一个块中写出推荐内容的文章,即静态资源的输出缓存
对于静态文件,例如HTML,JPG 或者,输出缓存是不必要的 GIF文件,可能会导致动态ASP.NET或更多的内存开销 从经常更改的数据库中读取的PHP页面
因此
<add extension=".png" ../>
<add extension=".jpeg" ../>
etc.
至少当你没有.png或.jpeg等的ashx http处理程序时,是没用的。