19

問題

ASP.Netアプリケーションにいくつかのパスがあり、IIS仮想ディレクトリにアプリを展開するという典型的な仮想ディレクトリのジレンマに直面しています。次に、アプリが仮想ディレクトリパスにあるため、「Webルート」(fi、「/ images」)に関連するすべてのパスが機能しません。


ソリューション

A.「images」フォルダを仮想ディレクトリにします。このように、「/images」は常に存在します。

B."<%=Request.ApplicationPath%>/Imagenes"画像のソースとして使用します。これはIISでうまく機能しますが、設計時でもデバッグ時でも表示されません。

このソリューションには、次の手順も含まれています。

  • System.Web.VirtualPathUtility.ToAbsolute
  • ResolveClientUrl
  • Request.ApplicationPath

C.現在のコントロール/ページへの相対パスを使用します。これにより、画像フォルダが現在のファイルに対してどこにあるかが正確にわかります(ルートに移動する必要はありません。したがって、「」、「../」、「../../」などを使用します。


私が探している解決策

と言った。私はこれらの解決策が好きではありません。web.configファイルまたはIISで解決策が必要です。アプリケーションが実際に存在する場所(仮想ディレクトリ)をIISに通知するweb.configファイルに書き込むいくつかの構成命令。

何かアドバイス?

4

2 に答える 2

12

可能な場合、パスにチルダ(〜)を使用していますか?

〜は仮想Webアプリケーションのルートを指します...。

〜/画像など。

于 2009-09-19T19:40:22.427 に答える
3

クライアント側のcssファイル専用の場合、urlディレクティブを使用すると、ページではなくスタイルシートのパスに相対的なパスが作成されます。

h1#title { background: url('dog.gif') no-repeat 0 0; } 

また、asp.net mvcを使用している場合は、以下にアクセスできます。

<script src="<%= Url.Content("~/scripts/new.js") %>" type="text/javascript"></script>
于 2010-10-19T11:37:28.210 に答える