我看到一些使用浏览器缓存的静态页面的问题,这是不需要的。为了防止缓存,我设置asp.net中的缓存问题
<clientCache cacheControlMode="DisableCache" />
在相关<location>
标签在web.config中
如果我打开Firebug的页面(在净选项卡),我看到的响应头有Cache-Control: no-cache
这是正确的,但响应的状态是304未修改!这不是矛盾吗?我怎样才能停止缓存(即总是发送200内容)?
我看到一些使用浏览器缓存的静态页面的问题,这是不需要的。为了防止缓存,我设置asp.net中的缓存问题
<clientCache cacheControlMode="DisableCache" />
在相关<location>
标签在web.config中
如果我打开Firebug的页面(在净选项卡),我看到的响应头有Cache-Control: no-cache
这是正确的,但响应的状态是304未修改!这不是矛盾吗?我怎样才能停止缓存(即总是发送200内容)?
按照RFC(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1,部分14.9.1)缓存控制:无缓存告诉浏览器不使用缓存的内容不先与服务器重新验证。这就是你看到304的原因。我认为你正在寻找Cache-Control: no-store
。
我不确定您是否可以通过配置文件发送无存储。
Response.Cache.SetNoStore();
编辑:(由OP)
我一直在寻找的是:
<clientCache cacheControlCustom="no-store" />
一个更好的问题可能是,你可以,但是,明确的响应设置页眉...“为什么IIS不认为它有更新的文件?”如果你可以解决这个问题,那么你不需要关闭缓存就可以实现性能。 – David 2010-06-07 19:26:53