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并确保其拼写正确“请求的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}" />