2010-09-29 77 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