我正在解決與版本控制非嵌入式資源(例如腳本)有關的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中)。