Wat is het verschil tussen de ./dogs.html en /dogs.html?

0
28

Ze zijn beide URL paden. Ze hebben verschillende namen, dat wel.

<!– root-relatieve –>
<a href=”./dogs.html”>Honden</a>

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

Er zijn ook volledig gekwalificeerde Url ‘ s die zouden worden, zoals:

<!– volledig gekwalificeerde –>
<a href=”https://website.com/dogs.html”>Honden</a>

Volledig gekwalificeerde URL ‘ s zijn vrij duidelijk in wat ze doen — die link brengt je naar die exacte plek. Dus, laten we eens kijken die eerste twee voorbeelden weer.

Stel je hebt een directory-structuur, zoals deze op uw site:

openbaar/
ã── index.html
└── dieren/
ã── cats.html
└── dogs.html

Als u een link zetten op cats.html dat links /dogs.html (een “absolute” pad), het gaat om het 404 — er is geen dogs.html op de base/basisniveau van deze site! De / aan het begin van het pad betekent “begin bij de bodem van het level en ga vanaf daar” (met publiek/ de bodem van het niveau).

Die link op cats.html zou moeten geschreven worden ./dogs.html (start een directory terug en werk omhoog) of /animals/dogs.html (expliciet staat die map te beginnen bij).

Absolute Url ‘ s worden weer langer, en natuurlijk hoe complexer de directory structuur.

openbaar/
ã── dieren/
└── huisdieren/
ã ä ä c/
| └── cats.html
└── d/
└── dogs.html

Met een structuur zoals deze, voor dogs.html link naar cats.html het zou moeten worden…

<!– Let op de TWEE puntjes, met de betekenis van een back-up van een andere map niveau –>
<a href=”../c/cats.html”>katten</a>

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

Het is vermeldenswaard in dit scenario, dat als dieren/ omgedoopt dier/, dan is de relatieve koppeling zou het nog steeds werken, maar de absolute link niet. Dat kan een nadeel aan het gebruik van absolute links. Als je dat specifieke, door een verandering van het pad zullen een impact hebben op uw banden.

We hebben alleen gekeken naar HTML koppelen aan die van HTML, maar dit idee is universeel het web (en computers, eigenlijk). Bijvoorbeeld, in een CSS-bestand, die u heeft:

body {
/* Een Back-up van het ene niveau van /foto ‘ s en volg dit pad */
background-image: url(./images/patroon.png);
}

…die zou juist in deze situatie:

openbaar/
ã── images/
| └── patroon.png
ã──index.html
└── stijl.css

Maar als je te verplaatsen van het CSS-bestand…

openbaar/
ã── images/
| └── patroon.png
ã── css/
| └── stijl.css
└── index.html

…wordt dat verkeerd, want je CSS-bestand wordt nu genest in een andere directory en verwijst naar de paden vanuit een dieper niveau. Je zou nodig hebben om een back-up van een andere map niveau weer met twee punten, zoals ../images/patroon.png.

Een URL-indeling is niet beter dan het andere, het hangt gewoon af van wat je denkt dat het nuttig en intuïtief op de tijd.

Voor mij, ik denk na over wat er de minste kans om te veranderen. Voor iets als een afbeelding actief, ik vind het zeer onwaarschijnlijk dat ik ooit zal verplaatsen, zodat het te koppelen met een absolute URL-pad (bijv. /images/patroon.png) lijkt de veiligste. Maar voor het koppelen van documenten samen die allemaal in dezelfde map, lijkt het veiliger ze te koppelen relatief.