Asp.net 为什么web.config中声明的缓存破坏规则被忽略?

Asp.net 为什么web.config中声明的缓存破坏规则被忽略?,asp.net,html,web-config,html5boilerplate,Asp.net,Html,Web Config,Html5boilerplate,我试图使用中的重写规则来绕过浏览器缓存(也称为缓存破坏): 如果我尝试使用/css/all.123456.css访问我的css,它将找不到该文件,并且错误报告它正在查找/css/all.123456.css(无重写)。我试着注释掉“删除WWW”规则,看看这是否冲突,但行为相同 你知道为什么不应用这个规则并重写URL吗 更新:我正在VS2010中为我的web服务器使用以下设置: )这并没有改变任何事情。同样的结果,这意味着/css/all.123456.css没有解析为/css/all.cs

我试图使用中的重写规则来绕过浏览器缓存(也称为缓存破坏):


如果我尝试使用
/css/all.123456.css
访问我的css,它将找不到该文件,并且错误报告它正在查找
/css/all.123456.css
(无重写)。我试着注释掉
“删除WWW”
规则,看看这是否冲突,但行为相同

你知道为什么不应用这个规则并重写URL吗

更新:我正在VS2010中为我的web服务器使用以下设置:



)这并没有改变任何事情。同样的结果,这意味着
/css/all.123456.css
没有解析为
/css/all.css
@TMC-那么它解析为什么呢?我得到一个404。看起来它根本没有被重新写入。@TMC您应该在错误页面的查询字符串中看到不存在的路径(或者在它的文本中,不知道您是如何处理它的),它是什么-以及
/css/all.css
是否仍然存在(可能是从缓存中获取的),它正在抛出404。错误页面显示找不到
资源。描述:HTTP404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请检查以下URL并确保其拼写正确/css/all.2012062401.css
<代码>/css/all.css
确实存在。
<rewrite>
    <rules>
        <rule name="Cachebusting">
            <match url="^(.+)\.\d+(\.(js|css|png|jpg|gif)$)" />
            <action type="Rewrite" url="{R:1}{R:2}" />
        </rule>
        <rule name="Remove WWW" stopProcessing="true">
            <match url="^(.*)$" />
            <conditions>
              <add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" />
            </conditions>
            <action type="Redirect" url="http://chewsy.com{PATH_INFO}" redirectType="Permanent" />
        </rule>
    </rules>
</rewrite>
<match url="^(.+)\.\d+\.(js|css|png|jpg|gif)$" />
<action type="Rewrite" url="{R:1}.{R:2}" />