0 Comments

绝对URL与相对URL(1)

发布于:2012-11-22  |   作者:广州网站建设  |   已聚集:人围观
绝对URL与相对URL(1)

URL(Uniform Resource Locator)称为统一资源定位符,是用来表示Web站点内外资源的地址的一种形式。URL用来唯一地标识你的或另一个Web站点中的资源。使用URL的地方包括:超链接的href属性;指向外部CSS文件的<link>元素;SRC属性指向一个图像或者一个JavaScript资源文件和CSS特性的url()值。URL可以表达为相对URL或者绝对URL。两种方法各有优缺点。广州网站建设

1. 相对URL

相对URL也就是相对于当前aspx或html文件的URL。Web网站的文件夹结构如图7-1所示。广州网站建设

图 7-1  Web网站的文件夹结构
要将根文件夹中的Login.aspx页面链接到Management文件夹中,可以使用这个URL:
广州网站建设
  1. <a href="Management/Default.aspx">进入默认的管理页面</a> 

它指向Management文件夹中的Default.aspx,而它本身位于根文件夹中,紧邻Login.aspx页面。

要从Management文件夹中的Default页面中返回Login.aspx页面,可以使用下面的URL:


  1. <a href="../Login.aspx">进入Login页面</a> 

开头的两个句点将一个文件夹导航到根文件夹。

对于较深的文件夹层次结构,可以用多个双句点。

相对URL的一个好处是,可以将一组文件夹移到同级的另一个目录,而不会中断它们的内部链接。然而,同时它们也使得将文件移到站点层次结构中不同级别变得更困难。例如,如果将页面Login.aspx移到一个单独的文件夹中,如Members,那么对Management文件夹的链接就会中断。新的Members文件夹就没有Management这一子文件夹,因此Management/ Default.aspx就不再是有效链接。广州网站设计

要克服这个问题,可以使用基于根文件夹的相对URL。

基于根文件夹的相对URL

基于根文件夹的相对URL总是以表示站点根文件夹的正斜杠开头。如果仍以对Management文件夹的链接为例,它的基于根文件夹的版本就会有如下表示:


  1. <a href="/Management/Default.aspx">进入默认的管理页面</a> 

注意Management文件夹前面的打头正斜杠。它总是指向根文件夹的Management文件夹中的文件Default.aspx。用了这个链接,将Login.aspx页面移到子文件夹就不会中断它;它仍然会指向同一个文件。

服务器端控件中的相对URL

使用了ASP.NET Server Control,可以采用另一种引用Web站点中资源的办法:可以用符号(~)指向站点的当前根文件夹。用~语法表示站点的根文件夹通常是引用资源(如图像)的最可靠的方式。

要了解~符号解决了什么问题,需要知道VWD 2008创建新站点并将它们与内置Web服务器建立关系的方式。当创建一个新的Web站点时,VWD 2008默认会在内置Web服务器下的独立应用程序文件夹中创建一个站点。因此,假设创建了一个新站点,并按Ctrl+F5键来打开浏览器中的默认页面,最后就得到类似这样的地址http://localhost:1360/ WebSite1/Default.aspx。通常,当将站点放在远程服务器上时,就不会有这个应用程序文件夹。取而代之的是,用户会浏览到一个绝对URL,如http://www. webdomain.com,并预期能看到这个站点。阻止VWD2008创建这样的独立文件夹的方法是重新设置Web站点的虚拟路径:首先在【解决方案资源管理器】中选择Web站点根文件夹,然后在【属性】窗口中将Web站点的【虚拟路径】设置为正斜杠(/)。

如果想使用不带~语法的URL引用文件,可以通过上面的方法设置Web站点的虚拟路径特性来完成。广州网站设计

2. 绝对URL

与从文档或者站点根文件夹的角度引用资源的相对URL相反,也可以使用根据完整路径引用资源的绝对URL。因此,它不是直接引用图像并可选地指定一个文件夹,而是包括了域和协议信息的完整名称(http://前缀)。类似于如下格式:


  1. <img src="http:// www.webdomain.com/ images/header/wrox_logo.gif" /> 

如果要引用自己的Web站点之外的资源,就必须用绝对URL。用这样的URL时,http://前缀很重要。如果省略了它,浏览器会在Web站点内寻找名为www. webdomain.com的文件夹。

绝对URL没有歧义,它们总是引用固定位置的资源。但并不是在任何地方用绝对URL都是理想的。额外的协议与域信息会增加浏览器中页面的大小,使页面的下载不必要地变慢。更重要的是,它增加了修改域名或者在不同的Web站点中重用某些功能的难度。例如,如果以前在www.mydomain.com上运行了站点,但是现在转移到了www.someotherdomain,就需要更新整个Web站点中的所有绝对URL。

总之,谨慎使用绝对URL。当创建引用Web站点之外的资源时总是需要它们,不过在可能的情况下应首先选择自己的项目中的相对URL。

【例7-1】虚拟路径特性的研究。

(1) 新建一个Web站点Ex7_1。

(2) 注意到VWD 2008提供了末尾为Ex7_1的路径。

(3) 向站点的根文件夹中添加一个图像,并命名为Pictrue.jpg。

(4) 在Default.aspx中,切换到【设计】视图,向其中添加3个ASP.NET Image控件,选择第一个Image控件,在其【属性】窗口中找到ImageUrl属性,单击其右边的【浏览】按钮,弹出【选择图像】窗口,如图7-2所示,选中pictrue.jpg文件,单击【确定】按钮。用同样的方法设置另外2个Image控件ImageUrl属性。然后切换到【源】视图中窗口,修改前2个Image控件ImageUrl属性如下所示(用3种不同的方式表达图像的地址):

广州网站设计
  1. <asp:Image ID="Image1" runat="server"  ImageUrl="pictrue.jpg" /> <br /> 
  2. <asp:Image ID="Image2" runat="server"  ImageUrl="/pictrue.jpg" /> <br /> 
  3. <asp:Image ID="Image3" runat="server"  ImageUrl="~/pictrue.jpg" /> <br /> 
飞机