我使用$ _SERVER [DOCUMENT_ROOT]很多來確保我的所有鏈接都能正常工作。例如:
<link href="' . $_SERVER[DOCUMENT_ROOT] . '/favicon.ico" rel="icon" />
不要緊,那是在文件的實際路徑,它總能找到相對於文檔根目錄的圖標的正確位置。
這一切在我的網絡服務器上按預期工作。但是,在我的本地開發服務器(Windows 7,Apache 2.2,虛擬主機配置)上,當它指向正確的路徑(C:/ Local/MySite)時,實際上並沒有發生任何事情(favicon不起作用,樣式表和圖像不'噸得到加載等)
有沒有什麼辦法讓$ _SERVER [DOCUMENT_ROOT]在本地工作?
我發現使用「http://」和$ _SERVER [HTTP_HOST](<link href="http://' . $_SERVER[HTTP_HOST] . '/favicon.ico" rel="icon" />
)可以得到相同的預期結果,這樣做有什麼缺點嗎?或者,我可以繼續使用$ _SERVER [DOCUMENT_ROOT],只需使用服務器重寫規則將其解析爲可在本地運行的某些內容,並且不會影響瀏覽器。
你的意思是說,不應該使用$ _SERVER [DOCUMENT_ROOT],不管本地與否? – 2012-04-05 14:40:49
是的,不要在鏈接/圖像中使用$ _SERVER [DOCUMENT_ROOT]。不過,它確實有其用處,例如當您使用PHP複製/移動文件時。 – Powerlord 2012-04-05 14:43:08
$ _SERVER [「DOCUMENT_ROOT」]應該只用於腳本的內部(需要,包括...),但不應該**用於外部(html,圖像...) – StormByte 2012-04-05 14:56:21