我正在尝试使用$ _SERVER [“DOCUMENT_ROOT”]链接到我的头文件中的样式表,如下所示:
<head>
<?php
print "<link href='".$_SERVER["DOCUMENT_ROOT"]."/include/style.css' rel='stylesheet' type='text/css' />";
?>
<title>eLMS</title>
</head>
由于我在本地测试,我的路径为:
<head>
<link href='C:\Users\wretrOvian\Documents\eLMS\site/include/style.css' rel='stylesheet' type='text/css' /> <title>eLMS</title>
</head>
这不是在Firefox中呈现的。然而,它确实在IE中。这显然是一个验证问题。但是,我在服务器上尝试了相同的代码 - 结果相同。 :(
我如何解决这个问题?最终产品可能在本地服务器上运行,也可能不运行,所以我需要代码灵活。
我正在使用Abyss Webserver x1和PHP 5.2.8
我必须使用绝对路径 - 因为我不想将include文件夹复制到应用的每个子目录。我需要能够从每个位置引用它。
答案 0 :(得分:9)
请使用:
<head>
<link href='/include/style.css' rel='stylesheet' type='text/css' />
<title>eLMS</title>
</head>
或者,如果在本地使用它:
<head>
<link href='../include/style.css' rel='stylesheet' type='text/css' />
<title>eLMS</title>
</head>
文档根目录仅供内部使用(在PHP内部),不适用于HTML。
答案 1 :(得分:1)
尝试使用:
$_SERVER['HTTP_HOST']
答案 2 :(得分:1)
不要使用文件系统绝对路径,使用相对于(但不包括)文档根目录的路径。在这种情况下只是/include/style.css
。
答案 3 :(得分:0)
要使用浏览器中的本地文件,请使用file
方案。
file://C:/dir/file.ext
file:///dir/file.ext
不确定你是否需要两个或三个斜杠,可能是两个带有驱动器号的窗口,三个带有根斜线的* nix,但我似乎记得看到带有驱动器号的三个斜杠。试试吧! :P
答案 4 :(得分:0)
尝试使用DIRECTORY_SEPARATOR
常量。它在Windows系统上和/在* nix系统上返回\。
答案 5 :(得分:0)
首先,文档根目录是Web服务器所在的目录。您通常不希望将此与网络上的任何内容一起使用。使用/代替。