惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

大猫的无限游戏
大猫的无限游戏
J
Java Code Geeks
小众软件
小众软件
D
Docker
腾讯CDC
H
Hackread – Cybersecurity News, Data Breaches, AI and More
V
V2EX
博客园 - 叶小钗
GbyAI
GbyAI
Microsoft Azure Blog
Microsoft Azure Blog
Stack Overflow Blog
Stack Overflow Blog
B
Blog RSS Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 【当耐特】
IT之家
IT之家
博客园 - 司徒正美
M
MIT News - Artificial intelligence
T
The Blog of Author Tim Ferriss
The GitHub Blog
The GitHub Blog
罗磊的独立博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LangChain Blog
阮一峰的网络日志
阮一峰的网络日志
C
Check Point Blog

博客园 - 卧雪眠云

理解.NET 2.0中的Partial关键字 .NET 2005的强类型数据集-1 ASP.NET 2.0保留文件夹 ASP.NET的Page.IsPostBack 属性 .NET委托:一个C#睡前故事 .NET Delegates: A C# Bedtime Story 安装.NET时,出现“FrontPage 2000 web 扩展客户端组件安装失败”的解决方法 ASP.NET页的生命周期 我的BLOG自白 初识AJAX ASP.NET的Request对象 慎用Google Earth E都市掀网上地图新浪潮 地图知识 男人别让爱你的女孩流泪 61条面向对象设计的经验原则 有效编写软件的75条建议 从文家书 安装VS.NET 2003时,安装程序检测到另一个程序要求计算机重新启动
关于URL路径的基本使用
卧雪眠云 · 2007-01-06 · via 博客园 - 卧雪眠云

        一般而言,链接路径的表达有三种方式:绝对路径、相对路径和基于根目录的路径。例如假设当前应用程序的结构如图1所示,它的网址为 http://www.asp.net,下面就介绍链接路径的表达方法。


图1 MyLocalSite结构图

1.绝对路径
        使用完整的URL地址,这种链接路径就是绝对路径,其特点是路径同链接站点的源点无关。在图1里,如要建立指向about目录下的about.aspx,则链接地址为:

<href="http://www.asp.net/about/about.aspx"></a>

        而建立指向database.aspx文档的路径为:

<href="http://www.asp.net/product/other/database.aspx"></a>

        使用绝对路径的最大缺点是不利于移植,例如现在站点的地址为http://www.asp.net,如果有一天站点更该http://www.asp.com,则所有的链接地址都失效,需要进行更改,难以维护。 

2.相对路径 
        为了避免绝对路径的缺陷,可以使用相对路径。相对路径可以表达源端点和目标端点之间的相互位置关系。具体可以分为如下两种情况:                

        ● 如果链接中,源端点和目标端点在同一个目录下,则在链接中只需要指明目标端点的文档名称就可以了。例如在图1中,如果希望在about.aspx文档中创建指向develop.aspx的链接,则可以写成如下:

        ● 如果在链接中,源端点和目标端点不位于同一个目录下,则只需要将目录的相对关系表达出来就可以了。如果链接指向的文档没有位于当前目录的子级目录中,则可以利用”..”符号来表示当前的父目录,多个..符号可以表示更高的父级目录,从而构建出目录的相对位置。例如如果希望在about.aspx文档中创建指向位于product目录中的software.aspx文档的链接,则可以用如下的代码:

<href="../product/software.aspx">

        如果希望在database.aspx文档中创建指向about.aspx文档的链接,则可以使用录如下的路径:

<href="../../about/about.aspx">

        利用相对目录的好处在与只要站点的结构和文档不变,链接就不会出错,然而如果你移动了文件,或者相对关系发生变化,则就会发生错误。

3.基于根目录的路径
        基于根目录的路径可以看成是绝对路径和相对路径之间的一种折衷,在这种表达方式下,所有的路径都是从站点的根目录开始的,它同源端点位置无关。
        例如在图1中建立指向About文件夹下的about.aspx的链接为:

<href="/about/about.aspx">

        建立指向database.aspx的链接为

<href="/product/other/database.aspx">

        另外,如果指向的是主页可以写成:

<href="/">或者<href="/default.aspx">

        注意:判断一个路径是相对路径还是相对于跟目录的路径就看链接地址是否是从"/"开始。

4.ASP.NET的“~”路径
        在ASP.NET里增加了一个新的表达方法“~”,“~”表示的路径是当前应用程序的根目录。“~”和上面介绍的“/”最大的区别是由服务器进行动态解释。由于“~”是相对于应用程序的根目录,所以利用它可以简化路径的设置,在某些情况下似乎还必须使用该控件,例如下面使用了一个TreeView控件:

下面显示了它的运行结果:

图2 TreeView控件运行结果图        在这个运行结果里可以看到News和CityLinks连接器都使用了文件夹图片folder.gif,这是通过

ParentNodeStyle-ImageUrl="~/images/xp/folder.gif"

进行设置的。在这里使用相对路径是不行的,因为在运行时,News和CityLinks在不同的级别,无法使用相对路径设置,如果使用绝对路径这里也算一个不错的选择,如果使用相对于根目录的路径,如果您使用的虚拟主机的话,就会发现有时你并得不到相对于根目录的路径,所以这里使用相对于应用程序的根目录确实是一个最好的做法。这个“~”就会由.NET在运行时自动解析的。

【xiaoyao PS】:节录自李万宝的博客网站: http://mqingqing123.cnblogs.com/,并修正了其中的部分错别字。