Hva er forskjellen mellom ./dogs.html og /dogs.html?

0
32

De er begge URL stier. De har forskjellige navn, skjønt.

<!– root-relativ –>
<a href=”./dogs.html”>Hunder</a>

<!– absolutt –>
<a href=”/dogs.html”>Hunder</a>

Det er også fullt kvalifisert Nettadresser som ville være som:

<!– fullt kvalifisert –>
<a href=”https://website.com/dogs.html”>Hunder</a>

Fullstendige URL-er er ganske tydelig på hva de gjør — denne koblingen tar deg til det eksakte stedet. Så, la oss se de to første eksemplene på nytt.

Si du har en katalog struktur som dette på nettstedet ditt:

offentlig/
ã── index.html
à── dyr/
ã── cats.html
à── dogs.html

Hvis du legger inn en link på cats.html som lenker til /dogs.html (en “absolutt” bane), det kommer til å 404 — det er ingen dogs.html på base/root nivå av dette nettstedet! Av / på begynnelsen av veien betyr “start på det nederste nivået og gå opp fra det” (med offentlig/ å være den aller nederste nivå).

Som link på cats.html må være skrevet som enten ./dogs.html (start en katalog tilbake og jobbe opp) eller /animals/dogs.html (eksplisitt staten som katalogen til å starte på det).

Fullstendige Nettadresser blir lengre og lengre, naturlig nok, mer komplekse katalogen struktur.

offentlig/
ã── dyr/
à── kjæledyr/
ã── c/
| à── cats.html
à── d/
à── dogs.html

Med en struktur som dette, for dogs.html for å lenke til cats.html det måtte være enten…

<!– Legg merke til de TO prikker, noe som betyr tilbake inntil en annen mappe nivå –>
<a href=”../c/cats.html”>katter</a>

<!– Eller absolutte –>
<a href=”/animals/pets/c/cats.html”>katter</a>

Det er verdt å merke seg i dette scenariet at hvis dyr/ ble omdøpt dyr/, så den relative link fortsatt ville jobbe, men den absolutte link ville ikke. Det kan være en ulempe å bruke absolutte lenker. Når du er bestemt, noe som gjør en endring til banen vil påvirke dine linker.

Vi har bare sett på HTML-kobling til HTML, men denne ideen er universell nettet (og datamaskiner, i utgangspunktet). For eksempel, i en CSS-fil, kan du ha:

body {
/* Ta opp ett nivå fra /bilder og følg denne veien */
background-image: url(./bilder/mønster.png);
}

…som ville være riktig i denne situasjonen:

offentlig/
ã── bilder/
| à── mønster.png
ã──index.html
à── stil.css

Men hvis du var å flytte CSS-fil…

offentlig/
ã── bilder/
| à── mønster.png
ã── css/
| à── stil.css
à── index.html

…så det blir feil fordi CSS-filen er nå plassert i en annen katalog, og refererer til stier fra et dypere nivå. Du vil trenge å ta opp en annen mappe nivå igjen med to prikker, som ../bilder/mønster.png.

En URL-formatet er ikke bedre enn en annen — det avhenger bare av hva du tror er mer nyttig og intuitiv på den tiden.

For meg, tror jeg om hva som er den minst sannsynlige ting å endre seg. For noe sånt som et bilde eiendelen, og jeg finner det svært usannsynlig at jeg noen gang vil flytte den, for så å koble til den med en absolutt URL-banen (f.eks. /bilder/mønster.png) synes det tryggeste. Men for å knytte dokumenter sammen at alt skje for å være i samme katalog, det virker tryggere å koble dem relativt.