/ 是超文本协议的路径分隔符号,所有的网站在浏览器中显示的路径分隔都是以"/"表示.它一般代表虚拟路径.
在普通程序代码中则以"\"表示文件路径分隔符号.它一般指物理路径.
./ 表示在当前路径下,
../表示在当前路径的上一级路径下.
~/表示当前网站的根目录下.
比如有网站路径如下
C:\Inetpub\wwwroot\test\
新闻路径如下
C:\Inetpub\wwwroot\test\news\
C:\Inetpub\wwwroot\test\news\2008\
C:\Inetpub\wwwroot\test\news\2008\info\
假设每个文件夹下面有个Default.aspx
以C:\Inetpub\wwwroot\test\news\2008\Default.apsx为例:
调试时显示路径为
http://localhost/test/news/2008/default.aspx 反斜杠都是虚拟路径分隔,它不会显示C:\Inetpub\wwwroot这节物理路径.
~/Default.aspx 指向C:\Inetpub\wwwroot\test\Default.aspx
显示Http://localhost/test/default.aspx
../Default.aspx 指向C:\Inetpub\wwwroot\test\news\Default.aspx(两点表示当前文件的上一级目录)
显示Http://localhost/test/news/default.aspx
/info/Default.aspx 指向C:\Inetpub\wwwroot\test\news\2008\info\Default.aspx
显示Http://localhost/test/news/2008/info/default.aspx
/ 是超文本协议的路径分隔符号,所有的网站在浏览器中显示的路径分隔都是以"/"表示.它一般代表虚拟路径.
在普通程序代码中则以"\"表示文件路径分隔符号.它一般指物理路径.
./指的是当前目录
../指上一级目录
/的话,从根目录开始。
~/的话,从当前项目开始(.NET 2.0新加)。
http://localhost/的话,连域名也包含了,当你换一个域名的话就不能访问了。
Server.MapPath("./abc/")+"aaa.jpg"得到的是在当前服务器上的物理路径。
(1)/ 任何场合它都表示根目录;
(2)~/ 由asp.net引擎帮你解析,也就是说,除了服务器控件外,其它地方(即HTML)使用都是无效的,它表示虚拟目录的根目录;《置疑》
(3)./ (一个点+斜杠)html中使用,表示当前目录;
(4)../ (两个点+斜杠)html中使用,表示当前目录的上一级目录。
可以通过以下来进行测试:
我的网站IIS目录为htdocs\,里面放着三个独立的网站,分别为WebSoft、HardWare、和Iss三个文件夹,测试页面放在WebSoft文件夹下的usercenter里,即Websoft/UserCenter/Test.aspx
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write(Server.MapPath ("/"));
Response.Write("<br />");
Response .Write (Server .MapPath ("~/"));
Response.Write("<br />");
Response.Write(Server.MapPath(".")); //一个点
Response.Write("<br />");
Response.Write(Server.MapPath("./")); //一点+斜杠
Response.Write("<br />");
Response.Write(Server.MapPath("../")); //两点+斜杠
}
测试结果为
D:\hosting\wwwroot\bjghsj_com\htdocs\
D:\hosting\wwwroot\bjghsj_com\htdocs\
D:\hosting\wwwroot\bjghsj_com\htdocs\Websoft\UserCenter
D:\hosting\wwwroot\bjghsj_com\htdocs\Websoft\UserCenter\ //有反斜杠
D:\hosting\wwwroot\bjghsj_com\htdocs\Websoft\
D:\hosting\wwwroot\bjghsj_com\htdocs\
请发表评论