ASP.NET 網頁 - 資料夾
本章是關於資料夾和資料夾路徑的。
在本章你將學到
- 關於邏輯和物理資料夾結構
- 關於虛擬和物理名稱
- 關於 Web URL 和路徑
邏輯資料夾結構
下面是 ASP.NET 網頁網站的典型資料夾結構

- “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”
URLs 和 Paths
URL 用於從 Web 訪問檔案:https://w3schools.tw/html/html5_intro.asp
URL 對應伺服器上的一個物理檔案:C:\MyWebSites\w3schools\html\html5_intro.asp
虛擬路徑是表示物理路徑的簡寫。如果你使用虛擬路徑,你可以將你的頁面移動到不同的域(或伺服器)而無需更新路徑。
URL | https://w3schools.tw/html/html5_intro.asp |
伺服器名稱 | w3schools |
虛擬路徑 | /html/html5_intro.asp |
物理路徑 | C:\MyWebSites\w3schools\html\html5_intro.asp |
磁碟驅動器上的根目錄寫成 C:\,而 Web 站點的根目錄是 /(正斜槓)。
Web 資料夾的虛擬路徑(幾乎)永遠不會與物理資料夾相同。
在你的程式碼中,你將引用物理路徑和虛擬路徑,具體取決於你正在編寫的程式碼。
ASP.NET 有 3 個用於處理資料夾路徑的工具:~ 運算子、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 物件的一個方法。