ASP.NET路径解惑

原创 2013年12月04日 23:50:38

    对于ASP.NET的路径问题,一直都是云里雾里,没有去详细的理解,今天正好可以梳理一下它们之间的关系和使用方法。而若想明白路径的表示方式的使用方法和区别以及注意事项可以通过下面的几个概念来进一步加深:


绝对路径和相对路径

  • 绝对路径

        每个网页都有一个唯一的地址,它就是该网页的绝对路径。绝对路径提供所链接文档的完整URL,而且包括所使用的协议(例如对于网页,通常使用HTTP)。例如上面的第一种写法就是一个绝对路径(虽然是一个不存在的地址)。

   必须使用绝对路径才能链接到其他服务器上的文档。尽管对本地链接(即到同一站点内文档的链接)也可以使用绝对路径链接,但不建议采用这种方式,因为一旦将此站点易懂到其他域,则所有本地绝对路径链接都将断开。

   当需要在站点内移动文件时,对本地链接使用相对路径还能提供更大的灵活性。

  • 相对路径

        文档相对路径对于大多数Web站点的本地连接来说,是最适用的路径。在当前文档与所链接的文档处于同一文件夹内,而且可能保持这种状态的情况下,文档相对路径特别有用。文档相对路径还可用来链接到其他文件夹中的文档,方法是利用文件夹层次结构,制定从当前文档到所链接的文档的路径。

   文档相对路径的基本思想是省略掉对于当前文档和所链接的文档都相同的绝对URL部分,而只是提供不同的路径部分。例如,假设一个文档集合的结构如图所示:

    

    如果要创建从booklist1.html到其他文件的链接,应注意以下问题:

    ① 若要从booklist1.html连接到booklist2.html(两个文件在同一文件夹中),文件名就是相对路径:booklist2.html。

    ② 若要链接到book001.html,(在booksDetail的子文件夹内)可使用相对路径:booksDetail/book001.html。

       每个正斜杠(/)表示在文件夹层次结构中下移一级。

    若要链接到main.html(在父文件夹中,booklist1.html向上一级),可使用相对路径: ../main.html。

       每个../表示在文件夹层次结构中上移一级。

    ④ 若要链接到index.html(在父父文件夹中,booklist1.html向上两级),可使用相对路径: ../../index.html。 

    若要链接到header.html(在父父文件夹的其他子文件夹中),可使用相对路径: ../../shared/header.html。

       其中../../向上移至父父文件夹;shared/向下移至shared文件夹中。

  若要成组地移动一组文件,例如移动整个文件夹时,该文件夹内所有文件保持彼此间的相对路径不变,此时不需要更新这些文件间的文档相对链接。但是,当移动含有文档相对链接的单个文件或者移动文档相对链接所连接到的单个文件时,则必须更新这些链接。


本地链接和服务器链接

   

   由于HTML网页是被传递到客户端计算机上运行,所以要特别注意链接路径。因为既可以链接到客户端计算机上的资源,也可以连接到网络服务器上的资源。例如,当位于服务器上的某个网页想链接到服务器上的另一个资源,假设该资源是 c:/test/root/form.html,位于服务器上。那么可以这样定义链接:

    <a href="协议名://主机名/form.html">绝对地址链接到form</a>

    <a href="相对路径/form.html">相对地址链接到form</a>

    而不能这样:  

<a href="file://c:/test/root/form.html">链接到form</a>

    当该网站的访问者单击该链接时,浏览器将尝试访问其各自计算机上的file://c:/test/root/form.html,通常会看到错误消息。这样做实际是将链接指向本地计算机上的一个文件,而不是服务器上的一个文件,因为最终被传送到本地计算机上运行。

    综上,在传统Web开发中一共有四种路径表示方式(下面以图片路径为例):

  • 直接以URL表示,如:

<img src="http://www.Test.com/images/cat.jpg"/>
  • 以相对于当前网页的形式表示,如:

<img src="images/cat.jpg"/>

  • 以相对于网站根路径的方式表示,用于客户端,如:

<img src="/images/cat.jpg"/>

  • 以当前页面路径对等的路径形式表示,如:

<img src="../images/cat.jpg"/>

    在ASP.NET中还有一种只能用于服务器控件上或者服务器代码里的表示形式,那就是“~”路径表示符,它的功能是无论页面位于网站中的什么位置,都将从位于 Web 应用程序根目录下的 images 文件夹中直接读取图像文件。如: 

<asp:Image ID="Image1" runat="server" ImageUrl="~/images/cat.jpg" />

   

   



版权声明:本文为博主原创文章,未经博主允许不得转载。

asp.net获取网站绝对路径

网站在服务器磁盘上的物理路径: HttpRuntime.AppDomainAppPath 虚拟程序路径: HttpRuntime.AppDomainAppVirtualPath 任何于Requ...
  • a4562834
  • a4562834
  • 2011年08月21日 18:31
  • 15573

C# ,asp.net 获取当前,相对,绝对路径

一、C#获取当前路径的方法:1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName-获取模块的完整路径。2. Sys...
  • hyunbar
  • hyunbar
  • 2017年11月02日 11:00
  • 217

C#(ASP.Net)获取当前路径的方法集合

//获取当前进程的完整路径,包含文件名(进程名)。  string str = this.GetType().Assembly.Location;  result: X:\xxx\xxx\xx...
  • HK_5788
  • HK_5788
  • 2015年10月05日 11:43
  • 4296

ASP.NET中的路径(path) 详解

一 ASP.NET常用路径(path)获取方法与格式对照表   假设我们的网址为http://localhost:1897/ News/Press/Content.aspx?id=1019 ...
  • my98800
  • my98800
  • 2017年11月21日 14:47
  • 100

Asp.net网站路径解决方案集合(转)

获取项目完整的绝对路径string path = System.AppDomain.CurrentDomain.BaseDirectory.ToString();string path = Serve...
  • liuyuehui110
  • liuyuehui110
  • 2010年08月04日 21:46
  • 960

C#编程中(ASP.Net)获取当前网页路径的所有方法集合总结

//获取当前进程的完整路径,包含文件名(进程名)。 string str = this.GetType().Assembly.Location; result: X:\xxx\xxx\xxx....
  • hejisan
  • hejisan
  • 2015年02月03日 01:45
  • 3134

ASP.net 路径问题 详解

各位有没有碰到在日常工作中经常在路径设置的时候把 “~/ 、./ 、../ 、 / 、http://www.cnblogs.com/“这些符号搞混搞乱了?偶尔还会因路径的问题郁闷了半天 还以为是程序上...
  • songkexin
  • songkexin
  • 2015年08月01日 18:24
  • 1471

.net中的路径问题

1、Server.MapPath("/") 应用程序根目录所在的位置 如 C:\Inetpub\wwwroot\ 2、Server.MapPath("./") 表示所在页面的当前目录 注:等价...
  • henulwj
  • henulwj
  • 2012年10月12日 13:21
  • 2792

asp.net实现上传图片显示本地绝对路径图片

前些时间做一个东西不知道怎么写下去! 网上都是先把图片上传然后再显示! 要么就是一大堆代码的那种! 其实这个还是得用去显示图片会更好一点! 用js实现图片的比例压缩让图片一样能够很清楚! 不多话了! ...
  • zhoukang0916
  • zhoukang0916
  • 2009年08月30日 23:40
  • 5519

asp.net获取网站绝对路径

网站在服务器磁盘上的物理路径: HttpRuntime.AppDomainAppPath 虚拟程序路径: HttpRuntime.AppDomainAppVirtualPath 任何于Requ...
  • my98800
  • my98800
  • 2016年11月01日 10:18
  • 1307
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP.NET路径解惑
举报原因:
原因补充:

(最多只允许输入30个字)