[ネットワーク収集]画像の相対アプリケーションパス"~/"


リソースを参照するASP.NETサーバコントロールでは、クライアント要素と同様に絶対パスまたは相対パスを使用できます.相対パスを使用すると、ページ、ユーザーコントロール、またはそのコントロールのトピックを含むパスに対して解析されます.たとえば、Controlsフォルダにユーザーコントロールが含まれているとします.このユーザーコントロールには、Image Webサーバコントロールが含まれています.このサーバーコントロールのImageUrlプロパティは、次のパスに設定されています.Images/SampleImage.jpg
このユーザーコントロールが実行されると、パスは次の形式に解析されます./Controls/Images/SampleImage.jpg
ユーザーコントロールを担持するページの位置にかかわらず、そうです.
サーバコントロールの絶対パス参照と相対パス参照には、次のような欠点があります.
  • 絶対パスは、アプリケーション間では移植できません.絶対パスが指すアプリケーションを移動すると、リンクが中断されます.
  • リソースまたはページを別のフォルダに移動すると、クライアント要素スタイルを使用する相対パスを維持することが困難になる場合があります.

  • これらの欠点を克服するために、ASP.NETはWebアプリケーションルート演算子(~)を有効にしており、サーバコントロールでパスを指定する場合に使用できます.ASP.NETは~演算子を現在のアプリケーションのルートディレクトリとして解析します.~演算子とフォルダを組み合わせて、現在のルートディレクトリに基づくパスを指定できます.次の例では、Imageサーバコントロールを使用して画像のルートディレクトリの相対パスを指定する演算子を示します.
     
    <asp:image runat="server" id="Image1"
    ImageUrl="~/Images/SampleImage.jpg" />

    この例では、Webアプリケーションのルートディレクトリの下にあるImagesフォルダから画像ファイルが直接読み込まれます.このページがWebサイトのどこにあるかにかかわらず.
    に注意
    ~演算子は、サーバコントロールのみを識別し、サーバコードに存在します.~演算子をクライアント要素に使用できません.
    ~演算子は、サーバコントロールのパスに関連する任意のプロパティで使用できます.