ASP.NET Web Pages - 文件夹


この章では、フォルダとフォルダパスに関する知識を紹介します。


この章では、次のことを学びます:

  • 論理フォルダ構造と物理フォルダ構造
  • 仮想名と物理名
  • Web URL と Web パス

論理フォルダー構造

以下は、典型的な ASP.NET Web サイトのフォルダ構造です:

Folders
  • "Account"フォルダーにはログインとセキュリティファイルが含まれる
  • "App_Data" フォルダには、データベースとデータファイルが含まれます。
  • "Images"フォルダーには画像が含まれる
  • "Scripts" フォルダには、ブラウザスクリプトが含まれます。
  • "Shared" フォルダには、共通ファイル(レイアウトやスタイルファイルなど)が含まれます。

物理フォルダー構造

上記の Web サイト内の "Images" フォルダのコンピュータ上の物理フォルダ構造は、次のようになる場合があります:

C:\Documents\MyWebSites\Demo\Images


仮想名と物理名

上記の例を例にとると:

Web サイトの画像の仮想名は "Images/pic31.jpg" のようになります。

対応する物理名は"C:\Documents\MyWebSites\Demo\Images\pic31.jpg"です。


URLとパス

URL は、Web サイト内のファイルにアクセスするために使用されます:http://www.example.com/html/html-tutorial.html

URL はサーバー上の物理ファイルに対応します:C:\MyWebSites\サンプル\html\html-tutorial.html

仮想パスは、物理パスの簡略表現です。仮想パスを使用すると、ドメイン名を変更したり、ウェブページを他のサーバーに移動したりしても、パスを更新する必要はありません。

URL http://www.example.com/html/html-tutorial.html
服务器名称 サンプル
虚拟路径 /html/html-tutorial.html
物理路径 C:\MyWebSites\サンプル\html\html-tutorial.html

ディスクドライブのルートディレクトリは C: のように記述しますが、ウェブサイトのルートディレクトリは / (スラッシュ)です。

Web フォルダの仮想パスは、通常、物理フォルダとは異なります。

コード内では、コーディングの必要性に応じて物理パスと仮想パスを決定します。

ASP.NETフォルダーパスには3つのツールがあります:~演算子、Server.MapPathメソッド、Hrefメソッド。


~ 运算符

~ 演算子を使用して、プログラミングコード内で仮想パスを指定します。

~ 演算子を使用すると、サイトを別のフォルダや場所に移行する場合でも、コードを変更する必要はありません:

var myImagesFolder = "~/images";
var myStyleSheet = "~/styles/StyleSheet.css";


Server.MapPath 方法

Server.MapPathメソッドは仮想パス(/index.html)をサーバーが理解できる物理パス(C:\Documents\MyWebSites\Demo\default.html)に変換します。

サーバー上のデータファイルを開く必要がある場合、この方法を使用できます(データファイルにアクセスできるのは、完全な物理パスを指定した場合のみです):

var pathName = "~/dataFile.txt";
var fileName = Server.MapPath(pathName);

このチュートリアルの次の章では、サーバー上のデータファイルの読み取り(および書き込み)について、さらに詳しい知識を学ぶことができます。


Href 方法

Href メソッドは、コード内で使用されるパスを、ブラウザが理解できるパスに変換します(ブラウザは ~ 演算子を理解できません)。

Href メソッドを使用して、リソース(画像ファイルや CSS ファイルなど)のパスを作成できます。

通常、HTML の <a>、<img>、<link> 要素でこのメソッドを使用します:

@{var myStyleSheet = "~/Shared/Site.css";}

<!-- This creates a link to the CSS file. -->
<link rel="stylesheet" type="text/css" href="@Href(myStyleSheet).html" />

<!-- Same as : -->
<link rel="stylesheet" type="text/css" href="../Shared/Site.css.html" />

Href メソッドは、WebPage オブジェクトのメソッドです。


其他扩展