Vad är skillnaden mellan ./dogs.html och /dogs.html?

0
15

De är båda URL vägar. De har olika namn, men.

<!– rot-relativ –>
<a href=”./dogs.html”>Hundar</a>

<!– absolut –>
<a href=”/dogs.html”>Hundar</a>

Det är också fullt kvalificerad Webbadresser som skulle vara som:

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

Fullständiga URL: er är ganska uppenbart i det de gör — att länken tar dig till den exakta platsen. Så, låt oss se de första två exemplen igen.

Säg att du har en katalog struktur som denna på din webbplats:

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

Om du lägger en länk på cats.html som länkar till /dogs.html (ett absolut sökväg), det kommer att 404 — det är ingen dogs.html på basen/root nivå på denna sida! / Till början av sökvägen betyder “början på den mycket nedre nivå och gå upp därifrån” (offentliga/ är den mycket nedre nivå).

Som länk på cats.html skulle behöva skrivas heller ./dogs.html (börja en katalog tillbaka och arbeta upp) eller /animals/dogs.html (uttryckligen ange vilken katalog för att börja på).

Absoluta Webbadresser få längre, naturligtvis, mer komplexa katalogstrukturen.

public/
├── djur/
└── husdjur/
├── c/
| └── cats.html
└── d/
└── dogs.html

Med en struktur som denna, för dogs.html att länka till cats.html det skulle vara antingen…

<!– Märker de TVÅ punkter, vilket innebär att säkerhetskopiera en annan mapp nivå –>
<a href=”../c/cats.html”> > katter</a>

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

Det är värt att notera i det här fallet att om djuren och döptes djur/, då den relativa länken skulle fungera ändå, men absolut länk skulle inte. Det kan vara en nackdel med att använda absoluta länkar. När du är som specifik, göra en förändring för att den vägen kommer att påverka dina länkar.

Vi har bara tittat på HTML-länkar till HTML, men denna idé är universell till webben (och datorer, i princip). Till exempel, i en CSS-fil, som du kan ha:

body {
/* Tillbaka upp en nivå till och från bilder och följ denna väg */
background-image: url(./bilder/mönster.png);
}

…som skulle vara rätt i den här situationen:

public/
├── bilder/
| └── mönster.png
├──index.html
└── stil.css

Men om du skulle flytta den CSS-fil som…

public/
├── bilder/
| └── mönster.png
├── css/
| └── stil.css
└── index.html

…blir det fel, eftersom din CSS-fil är nu samlade i en annan katalog, och refererar till vägar från en djupare nivå. Skulle du behöver för att säkerhetskopiera en annan mapp nivå igen med två prickar, som ../bilder/mönster.png.

En URL-format är inte bättre än någon annan — det beror bara på vad du tycker är mer användbart och intuitivt på den tiden.

För mig, jag tänker på vad som är minst troliga att förändras. För något som en bild tillgång, jag tycker att det är mycket osannolikt att jag någonsin kommer att flytta det, så länka till det med en absolut URL-sökväg (t ex /bilder/mönster.png) det verkar vara den säkraste. Men för att knyta ihop dokumenten som alla råkar vara i samma katalog, det verkar säkrare att länka dem relativt.