2011-09-30 23 views
39

我正在研究一些朋友的代碼,並發現建立他的網站的開發人員開始每個相關的src,hrefinclude,並且正斜槓/爲什麼開發人員會在每個相對路徑的開始處放置正斜槓?

例如:

src="/assets/js/jquery.js" 

我從來沒有見過這個。所以我的問題是,爲什麼開發人員在相對路徑的開始處放置正斜槓/

+0

dreamweaver ftl; p –

+0

我同意。 Geany FTW:P – Blender

+5

爲什麼downvote?我認爲這是一個很好的問題。+ 1 countertrike ftw! –

回答

57

這樣做是爲了根路徑(使其成爲絕對路徑)。

它確保路徑不是相對的,而是從站點的根目錄讀取。

這使得人們可以移動文件而不必更改指向不同資源的鏈接。

使用你的例子:

src="/assets/js/jquery.js" 

如果引用文件是/pages/admin/main.html(例如)使用相對路徑可以使用:

src="../../assets/js/jquery.js" 

假設你的文件移動到子目錄。將需要沒有變化,與原來紮根路徑,但相對的人會需要更改爲:

src="../../../assets/js/jquery.js" 
+15

哦,我明白了。所以你的意思是它允許帶*鏈接的文件*四處移動,這樣,相對於文件的位置,它就相對於站點根。我剛纔說的和你說的一樣嗎?有時它可以幫助我重複一些事情。感謝你的回答! – stefmikhail

+0

@stefmikhail - 是的,你說得對。 – Oded

7

這是爲了確保資產來自於web服務器的「根」。

例如 主機是www.example.com 網址將成爲www.example.com/assets/js/jquery.js

我做這個項目跟我要確保住自己的虛擬主機上。

這個問題真的歸結爲這些資產被包含在哪裏。例如,如果資產包含在/ help/pages/faq中,那麼開發者可以確定當站點託管在不變的主機上時,路徑將正確地工作,例如, example.com。

使用相對路徑'assets/js/jquery.js'的問題是,如果資產包含在/ help/pages/faqs中,那麼路徑就相對於該起點而言變得相對於該起點。 /help/pages/faqs/assets/js/jquery.js

希望幫助

23

添加上@Oded's answer,斜線使URL絕對的。

例如:

/foo/bar/baz.css 

這相當於:

http://www.example.com/foo/bar/baz.css 

但是,如果沒有斜槓,事情變得有點不同:

這告訴瀏覽器看在目錄當前文件夾(不是根文件夾)的目錄ectory foo,然後是後續的目錄和文件。


而且,就拿這個HTML:

<script type="text/javascript" src="foo.js"></script> 

如果將HTML文件到另一個文件夾,那麼該腳本將不加載,因爲foo.js未與HTML文件移動。

但是如果你使用絕對網址:

<script type="text/javascript" src="/foo.js"></script> 

然後JS文件加載EXACTLYhttp://www.example.com/foo.js無論身在何處的HTML文件。

+0

這很簡單,但有時我們會忘記。謝謝 – Nelssen

相關問題