ASP.NET 网页 - 文件夹


本章介绍文件夹和文件夹路径。


在本章中,您将学习:

  • 关于逻辑和物理文件夹结构
  • 关于虚拟名称和物理名称
  • 关于 Web URL 和路径

逻辑文件夹结构

下面是 ASP.NET 网页网站的典型文件夹结构:

Folders
  • "Account" 文件夹包含登录和安全文件
  • "App_Data" 文件夹包含数据库和数据文件
  • "Images" 文件夹包含图片
  • "Scripts" 文件夹包含浏览器脚本
  • "Shared" 文件夹包含常用文件(例如布局和样式文件)

物理文件夹结构

上述网站上的 "Images" 文件夹的物理结构在计算机上可能如下所示:

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


虚拟名称和物理名称

从上面的例子来看:

网络图片的虚拟名称可能是"Images/pic31.jpg"。

但物理名称是"C:\Johnny\Documents\MyWebSites\Demo\Images\pic31.jpg"



URL 和路径

URL 用于从网络访问文件:https://www.91xjr.com/html/html5_intro.html

URL 对应于服务器上的物理文件:C:\MyWebSites\91xjr\html\html5_intro.html

虚拟路径是表示物理路径的简写。如果您使用虚拟路径,则可以将页面移动到不同的域(或服务器),而无需更新路径。

网址 https://www.91xjr.com/html/html5_intro.html
服务器名称 91xjr
虚拟路径 /html/html5_intro.html
物理路径 C:\MyWebSites\91xjr\html\html5_intro.html

磁盘驱动器上的根目录写作类似于 C:\,但网站上的根目录是 /(正斜杠)。

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 方法创建图片文件和 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 方法是网页对象的方法。