如何禁止IIS缓存静态文件

155 篇文章 0 订阅
23 篇文章 0 订阅

转自:http://zzstudy.offcn.com/?p=1165

如何禁止IIS缓存静态文件(png、js、html等)
2012年07月02日  ⁄ 系统维护  ⁄ 暂无评论 ⁄ 被围观 2315+

禁止IIS缓存静态文件(png、js、html等)背景:

IIS为了提高性能,默认情况下会对静态文件js、html、gif、png等做内部缓存,这个缓存是在服务器iis进程的内存中的。IIS这么做在很大程度上可以提高静态文件的访问性能,在正常情况下只要静态文件更新了IIS也会更新缓存。但是如果更新的静态文件很多就有可能出现缓存不更新的情况。

如何禁止IIS缓存静态文件(png、js、html等):

通过设置Http头不让浏览器缓存的方法在这个场景下是行不通的,因为缓存不是出现的客户端,而是出现在IIS服务器上;所以解决问题还需要从IIS本身入手,通过配置Metabase.xml文件禁止IIS缓存相应目录下的静态文件。

1. 首先需要设置IIS允许运行时编辑Metabase.xml文件

<a href="http://www.zzstudy.com/wp-content/uploads/2012/07/1352430.png" class="cboxElement" rel="example4" 1165"="" style="text-decoration: none; color: rgb(1, 150, 227); ">

打开IIS,然后打开IIS属性页,勾选上“允许直接编辑配置数据库”选项

2. 在运行中输入notepad c:\WINDOWS\system32\inetsrv\MetaBase.xml 打开IIS配置文件

3. 在文件中搜索要配置禁止缓存的虚拟目录名字,找到类似如下配置节

<IIsWebVirtualDir    Location ="/LM/W3SVC/1832041641/root/inc"
        AccessFlags="AccessRead | AccessScript"
        AppFriendlyName="inc"
        AppIsolated="2"
        AppRoot="/LM/W3SVC/1832041641/Root/inc"
        DirBrowseFlags="DirBrowseShowDate | DirBrowseShowTime | DirBrowseShowSize | DirBrowseShowExtension | DirBrowseShowLongDate | EnableDefaultDoc"
        Path="D:\publish\inc"
    >
</IIsWebVirtualDir>

在IIsWebVirtualDir配置节中添加 MD_VR_NO_CACHE=”1“ 属性

4. 保存配置文件,重启IIS即可。

如果想配置服务器上的所有站点都禁用IIS缓存可以通过修改注册表实现:

编辑注册表中的 DisableStaticFileCache值,0为启用,1为禁用 ,该键值的位置位于:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InetInfo\Parameters

如果该键不存在可以新建。

注意事项:

通常情况下我们并不需要禁用IIS的静态文件缓存,iis会自动根据静态文件的修改时间自动更新缓存;只有在你遇到非常情况下才有必要禁用IIS缓存。IIS缓存和Http缓存相关头没有任何关系,在IIS上加缓存头没有办法清除掉IIS对静态文件的缓存。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值