Was ist der Unterschied zwischen ./dogs.html und /dogs.html?

0
24

Sie sind beide URL-Pfade. Sie haben unterschiedliche Namen, obwohl.

<!– root-relative –>
<a href=”./dogs.html”>Hunde</a>

<!– absolute –>
<a href=”/dogs.html”>Hunde</a>

Es gibt auch eine voll qualifizierte URLs das wäre wie:

<!– fully qualified –>
<a href=”https://website.com/dogs.html”>Hunde</a>

Voll-qualifizierte URL ‘ s ziemlich offensichtlich, was Sie tun — der link führt Sie zu genau dieser Stelle. So, schauen wir uns die ersten beiden Beispiele wieder.

Angenommen, Sie haben eine directory-Struktur wie diese auf Ihrer Website:

public/
├── index.html
└── Tiere/
├── cats.html
└── dogs.html

Wenn Sie einen link setzen auf cats.html die links zu /dogs.html (eine “absolute” Pfad), es wird 404 — es gibt keine dogs.html bei der Basis – /root-Ebene der Seite an! Der / am Anfang des Pfades bedeutet “start auf der unteren Ebene und gehen von dort” (mit öffentlicher/ ganz unten-Ebene).

Link auf cats.html würde geschrieben werden müssen entweder als ./dogs.html (starten Sie ein Verzeichnis zurück und nach oben arbeiten) oder /animals/dogs.html (explizit anzugeben, in welchem Verzeichnis starten).

Absolute URLs werden länger, natürlich, je komplexer die directory-Struktur.

public/
├── Tiere/
└── Haustiere/
├── c/
| └── cats.html
└── d/
└── dogs.html

Mit einer Struktur wie dieser, für die dogs.html link zu cats.html es müsste entweder…

<!– Beachten Sie die ZWEI Punkte, was bedeutet, wieder ein anderes Ordner-Ebene –>
<a href=”../c/cats.html”>Katzen</a>

<!– Oder absolute –>
<a href=”/animals/pets/c/cats.html”>Katzen</a>

Es ist erwähnenswert, dass in diesem Szenario, wenn Tiere/ wurde umbenannt Tier/, dann wird der relative link würde immer noch funktionieren, aber die absoluten link nicht. Das kann ein Nachteil bei der Verwendung von absoluten links. Wenn Sie, dass bestimmte, eine änderung der Pfad wird Auswirkungen auf Ihre links.

Wir haben uns nur angeschaut HTML-Verlinkung auf HTML -, aber diese Idee ist universell für den web – (und Computer, im Grunde). Zum Beispiel, in einer CSS-Datei, die Sie haben könnten:

body {
/* Um eine Ebene nach oben aus /Bilder und Folgen Sie diesem Pfad */
background-image: url(./Bilder/Muster.png);
}

…was wäre richtig in dieser situation:

public/
├── images/
| └── Muster.png
├──index.html
└── style.css

Aber wenn Sie wurden, um die CSS-Datei…

public/
├── images/
| └── Muster.png
├── css/
| └── style.css
└── index.html

…dann wird das falsch, weil deine CSS-Datei ist jetzt in einem anderen verschachtelten Verzeichnis und verweisen auf Pfade, von einer tieferen Ebene. Würden Sie brauchen, um wieder auf ein anderes Ordner-Ebene wieder mit zwei Punkten, wie ../Bilder/Muster.png.

Eine URL-format ist nicht besser als das andere — es hängt nur davon ab, was Sie denken, ist nützlich und intuitiv die Zeit.

Für mich, ich denke, über das, was ist die am wenigsten wahrscheinlich, was zu ändern. Für so etwas wie ein Bildelement, finde ich es sehr unwahrscheinlich, dass ich jemals bewegen, so verknüpfen Sie es mit einem absoluten URL-Pfad (z.B. /Bilder/Muster.png) scheint die sicherste. Aber für die Verknüpfung von Dokumenten zusammen, die alle zufällig im gleichen Verzeichnis, so scheint es sicherer, link relativ.