我正在解决与版本控制非嵌入式资源(例如脚本)有关的Web应用程序问题,强制重新加载,尽管有任何客户端缓存。IIS7 Url重写规则不会触发(对于脚本Src)
此解决方案的一部分涉及使用IIS Url重写来获取脚本位置(由'src'指定)并将其重写为实际资源。因此,作为供应将有一些像我们B页数:
<script type="text/javascript" src="../jsmenu/menu.js?ver=1.1"></script>
或
<script type="text/javascript" src="../jsmenu/menu-1_1.js"></script>
和重写规则将采取相应的客户端请求,并把它转换成一个请求:
"../jsmenu/menu.js"
我已经安装了Rewrite模块,并使用UI(它出现在web.config中)创建了一个规则,完成了大量的IISreset,但似乎没有发生任何事情。
这里的规则:
<system.webServer>
<rewrite>
<rules>
<rule name="VersionScripts">
<match url="../jsmenu/menu_([0-9]+)_([0-9]+).js" />
<action type="Rewrite" url="../jsmenu/menu.js" />
</rule>
</rules>
</rewrite>
</system.webServer>
的网址没有得到改写,并且脚本不会加载(因为它实际上没有所谓的“menu_1_1.js”)。如果我查看日志(无论是否有logRewrittenUrl =“true”),我都没有看到任何表明它被解雇的东西。
我错过了什么?
如果您可以帮助重写规则以便保留任何相对路径信息(该规则可用,无论是src =“../../ jsmenu/menu_1_1.js”还是src =“../ jsmenu /menu_1_1.js“或其他,并且该路径保存在重写的url中)。