CSS-Datei oberhalb des Wurzelverzeichnisses der Domain einlesen nicht möglich?
Token
- css
- html
Hallo,
offensichtlich lässt sich eine CSS-Datei oberhalb des Wurzelverzeichnisses der Domain nicht einlesen.
Beispiel: Das Wurzelverzeichnis der Domain XX lautet: /var/www/vhosts/XX/httpdocs/
Jetzt möchte ich eine CSS-datei, die auf /var/www/vhosts/CSS/ liegt mit <link rel='stylesheet' href='/var/www/vhosts/CSS/standard.css'> in eine PHP-Datei einbinden. Bekomme aber immer einen 404er-Fehler. Mache ich da was falsch, oder ist das grundsätzlich nicht möglich?
Andere PHP-Dateien kann ich per include einbinden, nur mit den CSS-Dateien klappt das nicht.
Hallole,
offensichtlich lässt sich eine CSS-Datei oberhalb des Wurzelverzeichnisses der Domain nicht einlesen.
das ist richtig; es hat aber nichts mit CSS oder HTML zu tun, sondern generell mit HTTP. Eine Adressierung nach "oberhalb" des Document Root ist prinzipiell nicht möglich.
Beispiel: Das Wurzelverzeichnis der Domain XX lautet: /var/www/vhosts/XX/httpdocs/
Jetzt möchte ich eine CSS-datei, die auf /var/www/vhosts/CSS/ liegt mit <link rel='stylesheet' href='/var/www/vhosts/CSS/standard.css'> in eine PHP-Datei einbinden. Bekomme aber immer einen 404er-Fehler.
Deine URL wird zu http://example.org/var/www/vhosts/CSS/standard.css vervollständigt.
Mache ich da was falsch, oder ist das grundsätzlich nicht möglich?
Sowohl als auch. 😉
Andere PHP-Dateien kann ich per include einbinden, nur mit den CSS-Dateien klappt das nicht.
PHP ist eine ganz andere Baustelle. PHP adressiert ja direkt über das Filesystem, nicht über HTTP.
Live long and pros healthy,
Martin
Hallo Token,
Andere PHP-Dateien kann ich per include einbinden, nur mit den CSS-Dateien klappt das nicht.
CSS wird vom Browser gelesen, ein INCLUDE vom PHP Script.
Kurz gesagt:
Was der Browser lesen soll, muss vom Browser erreichbar sein.
Was ein PHP Script lesen soll, ist an diese Grenze nicht gebunden. Grundsätzlich kann ein PHP Script alles lesen und schreiben, was der User, unter dem der Webserver läuft, lesen und schreiben kann. Weshalb dieser User so kastriert wie möglich sein muss.
Wenn Du unbedingt CSS Ressourcen bereitstellen willst, die nicht im Domain-Verzeichnisbaum liegen, brauchst Du einen Vermittler. Das kann man mit Mitteln des Filesystems machen (Links), was aber wenig sinnvoll ist. Man kann es auch mit einem PHP Script machen, dass die Datei von ihrem Ort in die HTTP Response kopiert. Sowas kann z.B. sinnvoll sein um einen User-Login zu prüfen oder je nach Einstellungen des Anwenders (Stichwort: Farbschema oder Skin) andere CSS zu liefern. Oder sie on-the-fly zu modifizieren.
Rolf