0

ここで実行されるMVCアプリがあります:

sometestingdemo.bla.com/mvcapp

テストサーバー上。通常、次のように本番サーバーの「トップドメインレベル」で実行されます。

bladibla.com

mvcが生成するhtmlには、次のようなコードが含まれています。

<link href="/content/css/global/somecoolstyles.css" rel="stylesheet" type="text/css" />

これは、本番サーバーでは明らかに正常に機能しますが、テストサーバーでは機能しません。これを修正するための私のオプションは何ですか(理想的にはMVCコードを変更せずに-可能であれば)?

4

1 に答える 1

1

Url.Content()ヘルパーは、アプリケーションがIISでホストされている仮想ディレクトリのルートへの相対パスを生成します。したがって、テスト環境でアプリケーションをmvcapp仮想ディレクトリでホストしている場合でも、正しい出力が生成されます。

あなたはURLヘルパーを使用していて、このCSSに場所をハードコーディングしていませんね。CSSファイルをリンクする正しい方法は次のとおりです。

<link href="@Url.Content("~/content/css/global/somecoolstyles.css")" rel="stylesheet" type="text/css" />

もちろん、ASP.NET MVC 4(Razor v2.0に依存)を使用している場合は、これを次のように簡略化することもできます。

<link href="~/content/css/global/somecoolstyles.css" rel="stylesheet" type="text/css" />

これは暗黙的にURLヘルパーを使用して正しいパスを生成します。

一方、このCSSファイルへのURLをハードコーディングしている場合は、ここでかなり乾杯しているのではないかと思います。

于 2013-03-08T13:44:55.073 に答える