2017-01-31 56 views
1

我繼承了一個網站,以前開發商編碼相對於站點根目錄的所有環節,在每個環節的領先反斜槓:使用根目錄相對鏈接隨着二級域名

<link href="/css/file.css" /> 
<script src="/js/file.js"></script> 

這對於當偉大工程網站託管服務器上,因爲鏈接將等同於:

http://www.example.com/css/file.css 
http://www.example.com/js/file.js 

不過,我試圖讓從本地測試中被調用時,這些鏈接才能正常工作。具體來說,我使用WAMP,並已將整個代碼移動到名爲site的本地文件夾http://localhost:8080/site/

我不能使用localhost的根,因爲WAMP在那裏存儲各種文件(包括會被覆蓋的索引)。

顯而易見的解決方案,在這裏StackOverflow上許多帖子建議,就是簡單地使用相對文件夾鏈接,如:

<link href="css/file.css" /> 
<script src="js/file.js"></script> 

然而,相對根字面上有數百個硬編碼的鏈接在各種不同的文件中,所以如果可能的話,不得不避免改變它們中的每一個。

爲了避免編輯每一個環節,我試過設置的HTML標籤<base>和直接指定的文件夾:

<base href="http://localhost:8080/site/"> 

然而,這似乎並沒有工作。

是否<base>與根目錄相關鏈接不兼容?

有沒有什麼辦法可以輕鬆地讓所有文件參考http://localhost:8080/site/,而不必手動編輯他們預先存在的每個根相對鏈接?或者我將不得不手動更新每個文件夾相對?

回答

1

是否<base>與根目錄相關鏈接不兼容?

不,但絕對路徑仍然是絕對路徑。它將通過刪除/site/來解決相對於http://localhost:8080/site/

如果你想使用絕對路徑,而不是保留你的開發網站在子目錄中,那麼configure your HTTP server to use Virtual Name Hosting

添加自定義主機名(在您的LAN的DNS服務器或開發系統的hosts文件中),如site.localhost,並將DocumentRoot設置爲虛擬主機。

+0

謝謝你讓我知道,有一個選項,讓我保持根相對鏈接 - 它肯定似乎走的路:) –