Antworten:
Verwenden Sie ..
diese Option , um das übergeordnete Verzeichnis anzugeben:
background-image: url('../images/bg.png');
Hier ist alles, was Sie über relative Dateipfade wissen müssen:
Beginnend mit /
kehrt zum Stammverzeichnis zurück und beginnt dort
Beginnend mit ../
verschiebt sich ein Verzeichnis rückwärts und beginnt dort
Beginnend mit ../../
Verschiebt zwei Verzeichnisse rückwärts und beginnt dort (und so weiter ...)
Um fortzufahren , beginnen Sie einfach mit dem ersten Unterverzeichnis und fahren Sie fort.
Klicken Sie hier für weitere Details!
Verwendung ../
:
background-image: url('../images/bg.png');
Sie können das so oft verwenden, wie Sie möchten, z. B. ../../images/
oder sogar an verschiedenen Positionen, z. B. ../images/../images/../images/
(wie ../images/
natürlich)
Wenn Sie in Chrome eine Website von einem HTTP-Server laden, funktionieren sowohl absolute Pfade (z. B. /images/sth.png
) als auch relative Pfade zu einem Verzeichnis der oberen Ebene (z ../images/sth.png
. B. ).
Aber!
Wenn Sie (in Chrome!) Ein HTML-Dokument aus dem lokalen Dateisystem laden, können Sie nicht auf Verzeichnisse zugreifen, die über dem aktuellen Verzeichnis liegen. Das heißt, Sie können nicht darauf zugreifen ../something/something.sth
und den relativen Pfad in absolut ändern, oder irgendetwas anderes hilft nicht.
../
do gut funktionieren - oder zumindest in diesem speziellen Fall gut funktionieren!
Angenommen, Sie haben die folgende Dateistruktur:
-css
--index.css
-images
--image1.png
--image2.png
--image3.png
In CSS können Sie image1
beispielsweise über die Leitung zugreifen ../images/image1.png
.
HINWEIS : Wenn Sie Chrome verwenden, funktioniert dies möglicherweise nicht und Sie erhalten die Fehlermeldung, dass die Datei nicht gefunden wurde. Ich hatte das gleiche Problem, also habe ich einfach den gesamten Cache-Verlauf aus Chrome gelöscht und es hat funktioniert.
Wenn Sie Stylesheets / Bilder in einem Ordner speichern, damit mehrere Websites sie verwenden können, oder wenn Sie dieselben Dateien auf einer anderen Site auf demselben Server wiederverwenden möchten, habe ich festgestellt, dass mein Browser / Apache mir den Zugriff nicht erlaubt Jeder übergeordnete Ordner über der Stamm-URL der Website. Dies scheint aus Sicherheitsgründen offensichtlich zu sein - man sollte nicht in der Lage sein, sich auf dem Server an einem anderen Ort als den angegebenen Webordnern umzuschauen.
Z.B. funktioniert nicht: www.mywebsite.com/../images
Um dieses Problem zu umgehen, verwende ich Symlinks:
Wechseln Sie in das Verzeichnis von www.mywebsite.com. Führen Sie den Befehl ln -s ../images images aus
Jetzt verweist www.mywebsite.com/images auf www.mywebsite.com/../images