ASP.NET Web Pages - 文件夾

本章介紹文件夾和文件夾路徑。

在本章中,您將學到:

  • 邏輯和物理文件夾結構
  • 虛擬和物理名稱
  • web URL 和路徑

邏輯文件夾結構

下面是 ASP.NET 網頁的典型文件夾結構:

Web Pages 文件夾結構
  • "Account" 文件夾包含登錄和安全文件
  • "App_Data" 文件包含數據庫和數據文件
  • "Images" 文件夾包含圖片
  • "Scripts" 文件夾包含瀏覽器腳本
  • "Shared" 文件夾包含通用文件(比如布局和樣式文件)

物理文件結構

上面這個網站的 "Images" 文件夾的物理結構在計算機上類似這樣:

C:\Johnny\Documents\MyWebSites\Demo\Images

虛擬和物理名稱

根據上面的例子:

web 圖片的虛擬名稱類似這樣:"Images/pic31.jpg"。

但是物理名稱類似這樣 "C:\Johnny\Documents\MyWebSites\Demo\Images\pic31.jpg"。

URL 和路徑

URL 用于從 web 訪問文件:

http://www.codew3c.com/html5/html5_intro.asp

URL 在服務器上對應的文件是:

C:\MyWebSites\htm5\html5_intro.asp

虛擬路徑是代表物理路徑的簡寫形式。如果您使用虛擬路徑,就能夠在不更新路徑的情況下將網頁移動到不同的域名(或服務器)。

URL	http://www.codew3c.com/html/html5_intro.asp
服務器名	codew3c
虛擬路徑	/html/html5_intro.asp
物理路徑	C:\MyWebSites\codew3c\/html/html5_intro.asp

磁盤驅動器上的根目錄寫作: C:\,但是網站上的根目錄是 /(斜杠)。

web 文件夾的虛擬路徑(幾乎)永遠不會與物理文件夾相同。

在您的代碼中,根據代碼內容的不同,可能會同時引用物理路徑和虛擬路徑。

ASP.NET 提供三種處理文件夾路徑的工具:~ 操作符、Server.MapPath 方法以及 Href 方法。

~ 操作符

如需在編程代碼中規定虛擬根目錄,請使用 ~ 操作符。

如果您使用 ~ 操作符,而不是路徑,就能夠在不改變任何代碼的情況下,將網站移動到不同的文件夾或位置:

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

Server.MapPath 方法

Server.MapPath 方法將虛擬路徑 (/default.cshtml) 轉換為服務器能夠理解的物理路徑 (C:\Johnny\MyWebSited\Demo\default.cshtml)。

當需要打開位于服務器上的數據文件時,您就會用到該方法(數據文件只能通過完整的物理路徑來訪問):

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

在本教程的下一章中,您將學習更多有關在服務器上讀取和寫入數據文件的知識。

Href 方法

Href 方法把代碼中的路徑轉換為瀏覽器能夠理解的路徑(瀏覽器無法理解 ~ 操作符)。

您使用 Href 方法來創建指向資源(比如圖片和 CSS 文件)的路徑。

您會經常在 HTML <a>、<img> 以及 <link> 元素中用到該方法:

@{var myStyleSheet = "~/Shared/Site.css";}
<!-- 創建指向 CSS 文件的鏈接 -->
<link rel="stylesheet" type="text/css" href="@Href(myStyleSheet)" />
<!-- 同上 : -->
<link rel="stylesheet" type="text/css" href="/Shared/Site.css" />

Href 方法屬于 WebPage 對象的方法。