Ich speichere Stylesheets in {root} / styles, während Bilder in {root} / images für eine Website. Wie gebe ich den Pfad in den Stylesheets an, um im Bilderverzeichnis nach den angegebenen Bildern zu suchen?
zB In background-image: url('/images/bg.png');
html
css
relative-path
aateeque
quelle
quelle
Hier ist alles, was Sie über relative Dateipfade wissen müssen:
Beginnend mit
/
kehrt zum Stammverzeichnis zurück und beginnt dortBeginnend mit
../
verschiebt sich ein Verzeichnis rückwärts und beginnt dortBeginnend 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!
quelle
Verwendung
../
: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)quelle
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.quelle
../
do gut funktionieren - oder zumindest in diesem speziellen Fall gut funktionieren!Angenommen, Sie haben die folgende Dateistruktur:
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.
quelle
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
quelle