0

IIS.Netからの情報を使用して、Web サイトの下に Web アプリケーションをセットアップしました- サイト、アプリケーション、および仮想ディレクトリについて

以下は、アプリケーションに関する彼らの発言です。

アプリケーションは、HTTP などのプロトコルを介してコンテンツを配信したり、サービスを提供したりするファイルのグループです。IIS でアプリケーションを作成すると、アプリケーションのパスがサイトの URL の一部になります。

それは素晴らしいことです; まさに私が欲しいもの; ただし...スクリプト ファイル、css、およびアプリケーション内の Web サービスのアプリケーション パスが正しく解決されません。

為にhttp://site_name/application_name

<img src="/Content/images/smiley.png" alt="smiley face" /></a>

に解決

src="/site_name/Content/images/smiley.png"

それ以外の

src="/application_name/Content/images/smiley.png"

回避策として、使用していたパスを@Url.Content()ヘルパーでラップしました。最も美しい解決策ではありませんが、機能しています。

<img src="@Url.Content("~/Content/images/smiley.png")" alt="smiley face" /></a>

IIS でこれを修正する方法はありますか?

4

3 に答える 3

1

これは IIS の問題ではなく、テンプレート側で行う必要があります。よくわかりませんが、asp.net mvc4/razor 2 では、

<img src="@Url.Content("~/Content/images/smiley.png")" alt="smiley face" />

行う

<img src="~/Content/images/smiley.png" alt="smiley face" />

すべてが自動的に適切なパスに変換されます。実際、このブログ投稿はその能力を記録しているようです。

しかし、それ以外の場合は、ブラウザーで表示される前に何らかの形で html が書き換えられ<img src="/path/to/image.png" alt="smiley face" />ない限り、常に を参照します。http(s)://(current server)/path/to/image.png

于 2012-10-02T16:17:38.527 に答える
0

@Url.ContentここではIMOを使用するのが正しい方法です。その後、開発者が自分のマシンでどのようにセットアップされているか (開発サーバーを実行しているか、IIS を使用しているか) に関係なく、リンクが機能します。

IIS でこれを処理する方法があるかどうかはわかりませんが、おそらく URL 書き換えルールですが、開発マシン間の一貫性には役立ちません。

編集: 仮想ディレクトリではなく、IIS のサイトのルートにサイトを展開することもできますが、これは、この 1 つのサイトのみをホストする場合にのみ有効なソリューションです。

于 2012-10-02T15:44:03.453 に答える
0

この「base」タグを「head」セクションに追加します: <base href="~/" target="_blank" />. 私はアンカー要素で同じ問題を抱えていました。

于 2014-06-26T17:00:20.453 に答える