Frage

Ich versuche, mit $ _server ["document_root"] wie folgt auf ein Stylesheet in meiner Header -Datei zu verlinken:

<head>
    <?php
        print "<link href='".$_SERVER["DOCUMENT_ROOT"]."/include/style.css' rel='stylesheet' type='text/css' />";
    ?>
    <title>eLMS</title>

</head>

Da ich vor Ort teste, bekomme ich den Weg als:

<head>
    <link href='C:\Users\wretrOvian\Documents\eLMS\site/include/style.css' rel='stylesheet' type='text/css' />      <title>eLMS</title>

</head>

Und das ist nicht in Firefox. Es tut es jedoch in IE. Dies ist offensichtlich ein Validierungsproblem. Aber ich habe denselben Code auf einem Server ausprobiert - mit den gleichen Ergebnissen. :(

Wie kann ich das beheben? Das Endprodukt kann auf einem lokalen Server ausgeführt werden oder nicht, daher muss der Code flexibel sein.

Ich verwende Abyss Webserver X1 mit PHP 5.2.8

Ich muss absolute Pfade verwenden - weil ich den Ordner des Include -Ordners nicht in jedes Unterverzeichnis der App kopieren möchte. Ich muss in der Lage sein, an jedem Ort darauf zu verweisen.

War es hilfreich?

Lösung

Verwenden Sie das einfach:

<head>
    <link href='/include/style.css' rel='stylesheet' type='text/css' />
    <title>eLMS</title>
</head>

Oder wenn es lokal verwendet wird:

<head>
    <link href='../include/style.css' rel='stylesheet' type='text/css' />
    <title>eLMS</title>
</head>

Das Dokumentwurzel ist nur für die interne Verwendung (innerhalb von PHP), nicht für in Ihrem HTML.

Andere Tipps

Versuchen Sie es mit:

$_SERVER['HTTP_HOST']

Verwenden Sie keinen Absolute -Pfad von Dateisystemen. Verwenden Sie einen Pfad relativ, um das Dokumentroot zu (aber nicht einschließlich). In diesem Fall gerecht /include/style.css.

Verwenden Sie für die Verwendung lokaler Dateien aus dem Browser die file planen.

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

Ich bin mir nicht sicher, ob Sie zwei oder drei Schrägstriche benötigen, wahrscheinlich zwei unter Windows mit dem Laufwerksbuchstaben, drei auf *Nix mit dem Root -Schrägstrich, obwohl ich mich daran erinnere, drei Schrägstriche mit dem Laufwerksbuchstaben zu sehen. Versuch es! :P

Versuchen Sie es mit dem DIRECTORY_SEPARATOR Konstante. Es gibt on Windows -Systeme und / auf *Nix -Systemen zurück.

Zunächst ist das Dokumentroot buchstäblich das Verzeichnis, in dem sich der Webserver befindet. Sie möchten dies normalerweise nicht mit Inhalten im Web verwenden. Verwenden / stattdessen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top