我有一個標準的MVC3項目與佈局頁面等。現在我需要製作漂亮的URL。我開始玩URL重寫模塊。我想http://localhost/Photographer/Pablo
轉化爲http://localhost/category-about.aspx?displayName=Pablo
,這裏是我的重寫規則:IIS URL重寫模塊:Url.Content()不能正確解析CSS /圖像路徑
<system.webServer>
<rewrite>
<rules>
<rule name="about" patternSyntax="Wildcard">
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add matchType="IsDirectory" negate="true" />
<add input="{REQUEST_URI}" pattern="\.png|\.js|\.css|\.jpg" negate="true" />
</conditions>
<match url="photographer/*" />
<action type="Rewrite" url="category-about.aspx?displayName={R:1}" logRewrittenUrl="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
你看到我使用Google試圖解決這一問題後添加的所有條件 - 他們並沒有什麼幫助(很簡單的!)。
我發現此頁面:http://www.iis.net/learn/extensions/url-rewrite-module/url-rewriting-for-aspnet-web-forms - 其中說當應用重寫規則時,〜操作符被服務器正確處理。但是,這顯然在我的情況不會發生 - 請看圖片附:
什麼是解決我的問題?我應該如何引用CSS/JS文件?我在IIS 7.5上使用MVC3。
UPDATE: 圖像不是很清楚 - 但它表明我MasterLayout頁面有
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
但它解析爲
http://localhost/Photographer/Content/Site.css - and it gives 404
,而不是
http://localhost/Content/Site.css - which gives 200
當我請求這個網址:http://localhost/Photographer/Pablo
。邏輯工作正常 - 我的控制器獲取請求並呈現頁面 - 但它的CSS和圖像丟失(因爲它們有錯誤的根文件夾)。
IIS 7.5如果這有幫助... – avs099