我想在用我的头文件链接到一个样式表$ _ 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但是。这显然是一个验证问题。但是,我试图在服务器上相同的代码 - 具有相同的结果。 :(

我要如何去修复呢?最终产品可以是或不是一个本地服务器上运行,所以我需要的代码是柔性..

我使用深渊网络服务器X1用PHP 5.2.8

我必须使用绝对路径 - 因为我不想给包括文件夹复制到应用程序的每一个子目录。我需要能够从每个位置参考。

有帮助吗?

解决方案

只要使用这样的:

<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中。

其他提示

尝试使用:

$_SERVER['HTTP_HOST']

不要使用一个文件系统绝对路径,使用相对于(但不包括)的文档根的路径。在这种情况下只是/include/style.css

有关使用从浏览器本地文件,使用file方案。

file://C:/dir/file.ext
file:///dir/file.ext

不知道,如果你需要两个或三个斜线,可能有两个与盘符窗口,三在* nix与根斜线,但我似乎记得看到三个斜杠盘符中。试试吧! :P

尝试使用DIRECTORY_SEPARATOR恒定。它在Windows系统返回\上和/ * nix系统。

首先,文档根是字面上是位于web服务器的/目录。你通常不希望在网络上的任何内容使用。使用/代替。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top