レイアウト ページなどを含む標準の MVC3 プロジェクトがあります。きれいな URL を作成する必要があります。URL書き換えモジュールで遊んでみました。http://localhost/Photographer/Pablo
に変換しようとしてhttp://localhost/category-about.aspx?displayName=Pablo
いますが、これが私の書き換えルールです (非常に簡単です!):
<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>
問題を解決しようとしてグーグルで検索した後に追加したすべての条件 - しかし、それらは役に立ちませんでした。
このページを見つけました: http://www.iis.net/learn/extensions/url-rewrite-module/url-rewriting-for-aspnet-web-forms - 書き換え時に ~ 演算子がサーバーによって適切に処理されることを示していますルールが適用されます。しかし、それは明らかに私の場合には起こりません-添付の画像を参照してください:
私の問題の解決策は何ですか? CSS/JS ファイルはどのように参照すればよいですか? IIS 7.5 で MVC3 を使用しています。
更新: 画像はあまり明確ではありませんが、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
この URL をリクエストすると: http://localhost/Photographer/Pablo
. ロジックは正常に動作します - 私のコントローラはリクエストを取得してページをレンダリングします - しかし、それは CSS であり、画像がありません (間違ったルート フォルダが先頭に追加されているため)。