2010-06-07 90 views
0

我看到一些使用浏览器缓存的静态页面的问题,这是不需要的。为了防止缓存,我设置asp.net中的缓存问题

<clientCache cacheControlMode="DisableCache" /> 

在相关<location>标签在web.config中

如果我打开Firebug的页面(在选项卡),我看到的响应头有Cache-Control: no-cache这是正确的,但响应的状态是304未修改!这不是矛盾吗?我怎样才能停止缓存(即总是发送200内容)?

+1

一个更好的问题可能是,你可以,但是,明确的响应设置页眉...“为什么IIS不认为它有更新的文件?”如果你可以解决这个问题,那么你不需要关闭缓存就可以实现性能。 – David 2010-06-07 19:26:53

回答

3

按照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" /> 
+0

但我想在web.config中完成此操作,而不是在代码中。有没有比更好的选择? – JoelFan 2010-06-07 19:18:30

+0

试试这个(未经测试!): 2010-06-07 19:29:01

+0

本页http://www.iis.net/ConfigReference/system.webServer/staticContent/clientCache没有列出“no-store”为一个可能的设置 – JoelFan 2010-06-07 19:42:08