src="/images/logo.gif"和src="images/logo.gif"有什么区别?

6
<img src="images/logo.gif" />
相当于
<img src="./images/logo.gif" />
但是
<img src="/images/logo.gif" />
则不同。
第三个元素寻找logo.gif的位置在哪里?
3个回答

10

第三个选项是相对于网站根目录查找,因此如果您在以下页面:

http://entrian.com/somewhere/page.html

它会长成这样:

http://entrian.com/images/logo.gif

忽略页面地址中的somewhere部分。


如果 .html 文件在您的本地磁盘上呢? - bobobobo
在本地磁盘上,它返回到驱动器的根目录;在Windows上,E:\somewhere\page.html -> E:\images\logo.gif,在Unix上,/home/me/somewhere/page.html -> /images/logo.gif。 - Stobor
@bobobobo:它将在您的本地计算机上查找/images/logo.gif文件。在Unix上,这很好;在Windows上,这取决于您的浏览器(它将在IE中工作,但在Firefox中不会)。根据浏览器的不同,您可能需要明确指定href="file://c:/images/logo.gif"。如果您正在为Web编写页面,但在本地计算机上进行测试,则应安装Web服务器并在其下进行测试-直接从文件系统加载它不是如何在真实Web服务器下加载页面的现实测试。 - RichieHindle

7

images/logo.gif

这是相对路径,意思是:进入一个名为images的文件夹,然后获取资源logo.gif

./images/logo.gif

这也是相对路径,意思是:从当前文件夹(点表示这个)进入一个名为images的文件夹,然后获取资源logo.gif

你可以看到前两个路径的意思是一样的,最后一个路径如下:

/images/logo.gif

这是绝对路径,意思是:从网络服务器或文件系统的根目录(斜杆表示这个)进入一个名为images的文件夹,然后获取资源logo.gif


但它不像http://www.example.com/images/logo.gif那样绝对。我喜欢把它看作是相对绝对的 :) - Bobby Jack
在什么情况下它们会有所不同?比如说,如果你正在使用 mod_rewrite 或子目录? - jon skulski
哎呀,我上面的评论应该在开头加上完整的协议 - 该死的自动链接!如果您从一个域(或子域)移动到另一个域,则它们将有所不同;虽然这种情况并不常见,但/images仍然存在一定的“相对性”。 - Bobby Jack

0

在文档根目录下。前两个是相对路径,而最后一个是绝对路径。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接