2008-12-22 25 views
2

[這個問題在一定程度上關係到this question,但答案是不...]HTML中包含的相對路徑?迴歸舊日?

我一直用HTML和腳本語言(PHP/ASP/JSP)的相對路徑來指代一切。我認爲這個理由與'如果該網站被託管在一個奇怪的子目錄中怎麼辦'。但我的同事已經開始將絕對路徑投入到我們正在開發的PHP站點中。起初我感到震驚,但後來我想,「爲什麼不呢?我們會永遠不會被託管在一個子目錄中。」如今,以根爲主機並不罕見。 是否仍然需要用相對路徑「編碼」(標記,真的)?我認爲現在可能是過時的做法。

回答

1

編輯:殺死我的開篇,因爲它是基於對引用文章的錯誤解釋。

我總是使用絕對路徑,原因如下:

包括: 1.當您使用模板系統,你永遠不知道一個文件是怎麼回事時,它調用了包括有目錄結構。 2.如果文件將被移動,你可以肯定它將是文件本身而不是包含文件。如果是包含,那麼他們會被我的人知道是怎麼回事。除此之外,如果某人不熟悉絕對/相對路徑,他們會比絕對路徑理解得更清楚。

css :(以及上述項目) 1.使用Web Developer進行編輯時,如果樣式表與文檔不在同一目錄中,則相對背景消失。 2.根據規格,當你在'網上放置東西時,應該在那裏持續一段時間。當我構建新的東西時,我將其構建在一個新文件夾中,或者創建一個新文件名,並保留所有舊文檔。

6

當然。你永遠不知道你的代碼將在哪裏結束,或者出於什麼目的。

假設您構建網站的新版本,但爲了幫助用戶轉換,請將舊版本移至「/ classic」子目錄。在網站將在「/新」目錄中託管新重新設計的測試版本的情況下,也經常發生這種情況。

第一次正確建造它不應該是一件麻煩事,你總有一天會爲此感謝你。

+0

這對於包含代碼來說是一件麻煩事,因爲我們總是需要處理我們是否已經在子目錄中。也許我應該問如何解決這個PHP,下一個... – 2008-12-22 15:20:46

+0

我的意思是「輕微的麻煩」。感謝您的回答! – 2008-12-22 15:21:20

2

嗯,它可能不是世界的盡頭,但它建立在一個你不需要的依賴中。

如果您想要在測試工具中的子目錄中放置許多版本,或者子目錄有助於解決其他問題(例如將此與其他一些堅持存在於根目錄中的應用程序結合使用),你可能會發現它更難。

當然,你可能總是以其他方式解決它 - 但問題是你現在不得不這樣做。

+0

很好的答案,謝謝。 – 2008-12-22 15:20:02

1

如果您使用動態生成的頁面,請動態生成您的URL。例如,使用JSTL使用< c:url >。這不僅可以讓您在將來移動頁面,還可以確保您的URL將被正確地轉義(說實話:您使用& amp建立查詢字符串的頻率如何?如果您希望W3C驗證程序接受它們, 你需要)。

對於我的個人網站,它使用PHP構建頁面,我創建了幾個方法:insertPageRef(),insertCodeRef()等等,這些方法創建有效的HREF。因此,我毫不猶豫地重新安排我的網站結構,隨着它的發展。

+0

有關您的PHP方法的優秀筆記...感謝您的回答。 – 2008-12-22 15:26:09

1

被移動到子目錄的情況相當不尋常,我會說。更爲常見的是在不同的服務器上託管:您創建自己的網站以在「dev.yourcompany.com」上進行測試,然後通過將其移至「www.yourcompany.com」進行實時測試。在這種情況下,出於顯而易見的原因,您需要使用相對鏈接。

+0

對,絕對我不是指包含服務器名稱的鏈接。這將是很難測試... – 2008-12-23 04:27:28