我正在研究一些朋友的代碼,並發現建立他的網站的開發人員開始每個相關的src
,href
和include
,並且正斜槓/
。爲什麼開發人員會在每個相對路徑的開始處放置正斜槓?
例如:
src="/assets/js/jquery.js"
我從來沒有見過這個。所以我的問題是,爲什麼開發人員在相對路徑的開始處放置正斜槓/
?
我正在研究一些朋友的代碼,並發現建立他的網站的開發人員開始每個相關的src
,href
和include
,並且正斜槓/
。爲什麼開發人員會在每個相對路徑的開始處放置正斜槓?
例如:
src="/assets/js/jquery.js"
我從來沒有見過這個。所以我的問題是,爲什麼開發人員在相對路徑的開始處放置正斜槓/
?
這樣做是爲了根路徑(使其成爲絕對路徑)。
它確保路徑不是相對的,而是從站點的根目錄讀取。
這使得人們可以移動文件而不必更改指向不同資源的鏈接。
使用你的例子:
src="/assets/js/jquery.js"
如果引用文件是/pages/admin/main.html
(例如)使用相對路徑可以使用:
src="../../assets/js/jquery.js"
假設你的文件移動到子目錄。將需要沒有變化,與原來紮根路徑,但相對的人會需要更改爲:
src="../../../assets/js/jquery.js"
哦,我明白了。所以你的意思是它允許帶*鏈接的文件*四處移動,這樣,相對於文件的位置,它就相對於站點根。我剛纔說的和你說的一樣嗎?有時它可以幫助我重複一些事情。感謝你的回答! – stefmikhail
@stefmikhail - 是的,你說得對。 – Oded
這是爲了確保資產來自於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
希望幫助
添加上@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文件加載EXACTLY從http://www.example.com/foo.js
無論身在何處的HTML文件。
這很簡單,但有時我們會忘記。謝謝 – Nelssen
dreamweaver ftl; p –
我同意。 Geany FTW:P – Blender
爲什麼downvote?我認爲這是一個很好的問題。+ 1 countertrike ftw! –