本章是有关文件夹和文件夹路径。
在本章中,您将了解到:
- 关于逻辑和物理文件夹结构
- 关于虚拟和物理名称
- 关于网页的URL和路径
逻辑文件夹结构
下面是一个ASP.NET网页的网站一个典型的文件夹结构:
- 在"Account"文件夹中包含登录和安全性文件
- 在"App_Data"文件夹包含数据库和数据文件
- 在"Images"文件夹中包含图片
- 在"Scripts"文件夹中包含浏览器脚本
- 在"Shared"文件夹中包含的公共文件(like layout and style files)
物理文件夹结构
对于物理结构"Images"文件夹在上面的网站看起来可能是这样的计算机上:
C:\约翰尼\文档\ MyWebSites \演示\图片
虚拟和物理名称
从上面的例子中:
网络图片的虚拟名称可能是"Images/pic31.jpg" 。
但物理名称是"C:\Johnny\Documents\MyWebSites\Demo\Images\pic31.jpg"
URL和路径
网址是从网络访问文件: http://www.w3ii.com/html/html5_intro.asp
该URL对应的服务器上的物理文件:C:\ MyWebSites \ w3ii \ HTML \ html5_intro.asp
虚拟路径的简写表示物理路径。 如果您使用的虚拟路径,您可以将您的网页不同的域(or server)而无需更新的路径。
网址 | http://www.w3ii.com/html/html5_intro.asp |
服务器名称 | w3ii |
虚拟路径 | /html/html5_intro.asp |
物理路径 | C:\ MyWebSites \ w3ii \ HTML \ html5_intro.asp |
磁盘驱动器的根上是这样写C:\,但在一个网站的根目录是/ (forward slash) 。
网络文件夹的虚拟路径是(almost)从来相同的物理文件夹。
在你的代码会,表示这两个物理路径和虚拟路径,这取决于你是什么样的编码。
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);
你会学到更多关于读取(and writing to)在本教程的下一章中的数据文件在服务器上。
在href方法
中的HREF方法转换代码中使用的路径的路径在浏览器可以理解(the browser cannot understand the ~ operator) 。
您可以使用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方法是网页对象的方法。