PHP: документ корневой каталог задача обратной строки

StackOverflow https://stackoverflow.com/questions/2015464

  •  19-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь ссылаться на таблицу стилей в моем файле заголовка, используя $ _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

Я должен использовать абсолютные пути - потому что я не хочу копировать папку «Включить» в каждый подкаталог приложения. Мне нужно иметь возможность ссылаться на это со всех мест.

Это было полезно?

Решение

Просто используйте это:

<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

Не уверен, что вам нужно две или три удара, вероятно, две в Windows с буквой для привода, три на *nix с корневой чертой, хотя я, кажется, помню, как видел три удара с помощью буквы Drive. Попытайся! :П

Попробуйте использовать DIRECTORY_SEPARATOR постоянный. Он возвращает в Windows Systems и / ON *NIX Systems.

Прежде всего, корень документа - это буквально каталог, в котором находится веб -сервер / находится. Вы обычно не хотите использовать это с каким -либо контентом в Интернете. Используйте / вместо этого.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top