我经常使用 $_SERVER[DOCUMENT_ROOT] 来确保我的所有链接都能正常工作。例如:
<link href="' . $_SERVER[DOCUMENT_ROOT] . '/favicon.ico" rel="icon" />
文件的实际路径无关紧要,它总能找到网站图标相对于文档根目录的正确位置。
这一切都在我的网络服务器上按预期工作。但是,在我的本地开发服务器(Windows 7、Apache 2.2、配置的虚拟主机)上,虽然它指向正确的路径(C:/Local/MySite),但实际上什么也没发生(favicon 不起作用,样式表和图像不' t得到加载等)
有没有办法让 $_SERVER[DOCUMENT_ROOT] 在本地工作?
我发现使用“http://”和 $_SERVER[HTTP_HOST] ( ) 可以获得相同的预期结果,<link href="http://' . $_SERVER[HTTP_HOST] . '/favicon.ico" rel="icon" />
这样做有什么缺点吗?或者,我可以继续使用 $_SERVER[DOCUMENT_ROOT] 并使用服务器重写规则将其解析为将在本地运行的内容,并保持浏览器不变。