2010-09-29 54 views
0

有什么区别?谢谢。HTML不同链接类型问题

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

between 

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

between 

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

between 

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

回答

2

您需要了解relative and absolute paths

这里是我对你的例子的解释,但你真的应该阅读链接以理解这些概念。

如果基URL是 “http://example.com/resources/”,那么:

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

将获得:

http://example.com/resources/images/file.jpg 

它只是增加了src网址到基础URL 。


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

将获得:

http://example.com/images/file.jpg 

Bacuse图像URL植根(有/开始)使用的域,并增加了图片src域。


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

将获得:

http://example.com/resource/images/file.jpg 

在这种情况下,使用当前目录(.),这是基本目录(资源)的相对路径。


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

将获得:

http://example.com/images/file.jpg 

在这种情况下,它使用相对路径的父目录(..),这使得它走了一个目录,然后添加其余路径。

+0

所以在功能上是一样的,对不对? – netrox 2010-09-29 16:55:56

+0

@netrox - 非常。没有真正意义的使用'。' – Oded 2010-09-29 16:57:00

0

第一个,第三个和最后一个是相对于当前路径。在最后一个中,..是父文件夹,这意味着您基本上在层次结构中提升了一个级别,而在第二个文件夹中,.是当前文件夹,使URI等同于第一个文件夹。第二个是相对于根,因为它以/开头。详细了解HTML4 spec中的URI,或者通常有关Unix-style paths的URI。

因此,如果你在website.com/folder/folder/index.html,四个的URI是相同的:

website.com/folder/folder/images/file.jpg 
website.com/images/file.jpg 
website.com/folder/folder/images/file.jpg 
website.com/folder/images/file.jpg 
+0

不,他们都是相对的。也就是说,用户代理将添加信息以创建绝对URI,以便它可以请求资源。不同之处在于它们与*相对*。第一个是相对于当前文件(所有意图和目的相当于第三个,“/ ...“),第二个相对于服务器根目录,第三个到当前目录,第四个到父目录。对于所有本地链接来说,根相对链接是最佳实践,因为它不会中断如果主机文档移动,绝对URI包含协议 – 2010-09-29 17:07:10

+0

好点但是,我不同意最后一个是相对于它的父 - 它是相对于当前文件夹,除了特殊文件夹“.. '指的是父文件夹。 – You 2010-09-29 19:51:53