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...

asp.net架构设计解惑

前言:之前的文章,很多朋友发来了反馈,从反馈中也看出了一些问题,一个最明显的问题就是:当我提到DAL的实现的时候,一些朋友就问:DAL中采用了Repository模式吗? 初一看起来,可能认为这个问题...

asp.net获取路径的方法

  • 2017-10-10 13:51
  • 18KB
  • 下载

asp.net获取网站路径

System.IO.Path  //处理路径类 ChangeExtension //把给定的路径字符串的扩展名改为新扩展名 Combine    //从两个部分路径字符串中返回一个合并的路径 G...

asp.net路径转向实例

  • 2011-05-31 21:45
  • 21KB
  • 下载

asp.net母版页的路径问题

母版页的路径问题大都是由于使用了相对路径产生的。只需要将相对路径改成根路径(即从网站的根目录开始的路径)就OK了。 首先说一下错误的路径写法,下面是程序文件的结构,文件Index.aspx和文件ad...

asp.net通过ftp路径上传和下载文件

/// /// FtpWeb 的摘要说明 /// public class FtpWeb { string ftpServerIP; string ftpRemotePath; ...

ASP.NET获取网站路径

示例:输出asp.net 网站路径。 private void responseHtml()     ...{          System.Text.StringBuilder...

获取 ASP.NET 网站路径

示例:输出asp.net 网站路径。 private void responseHtml()     {         System.Tex...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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