web-dev-qa-db-fra.com

Pourquoi un développeur placerait-il une barre oblique au début de chaque chemin relatif?

J'examine un code pour un ami et j'ai constaté que le développeur qui a construit son site a commencé chaque parent src, href et include avec une barre oblique /.

Par exemple:

src="/assets/js/jquery.js"

Je n'avais jamais vu ça avant. Donc ma question est, pourquoi un développeur placerait-il une barre oblique / au début d'un chemin relatif?

48
stefmikhail

C'est fait afin de rooter le chemin (ce qui en fait un chemin absolu).

Il garantit que le chemin n'est pas relatif mais lu à la racine du site.

Cela permet de déplacer un fichier et de ne pas avoir à modifier les liens vers les différentes ressources.

En utilisant votre exemple:

src="/assets/js/jquery.js"

Si le fichier de référence est dans /pages/admin/main.html (par exemple) en utilisant des chemins relatifs que vous utiliseriez:

src="../../assets/js/jquery.js"

Supposons que vous déplacez le fichier vers un répertoire enfant. Aucune modification ne serait nécessaire avec le chemin enraciné d'origine, mais le chemin relatif devrait changer en:

src="../../../assets/js/jquery.js"
69
Oded

En ajoutant @ la réponse d'Oded , la barre oblique rend l'URL absolue.

Par exemple:

/foo/bar/baz.css

Cela se traduit par:

http://www.example.com/foo/bar/baz.css

Mais sans barre oblique, les choses deviennent un peu différentes:

foo/bar/baz.css

Cela indique au navigateur de rechercher dans le dossier actuel (pas le dossier racine) le répertoire foo, puis les répertoires suivants et le fichier.


Prenez également par exemple ce code HTML:

<script type="text/javascript" src="foo.js"></script>

Si vous déplacez le fichier HTML dans un autre dossier, le script ne se chargera pas, car foo.js n'est pas déplacé avec le fichier HTML.

Mais si vous utilisez une URL absolue:

<script type="text/javascript" src="/foo.js"></script>

Ensuite, le fichier JS est chargé [~ # ~] exactement [~ # ~] à partir de http://www.example.com/foo.js peu importe où se trouve le fichier HTML.

30
Blender

Il s'agit de s'assurer que l'actif provient de la "racine" du serveur Web.

par exemple. L'hôte est www.example.com L'URL devient www.example.com/assets/js/jquery.js

Je le fais avec le projet que je veux assurer en direct sur leur propre hôte virtuel.

La question se résume vraiment à l'endroit où ces actifs sont inclus. Par exemple, si l'actif est inclus à partir de/help/pages/faq, le développeur peut être sûr que le chemin fonctionnera correctement lorsque le site est hébergé sur un hôte inchangé, par ex. example.com.

Le problème de l'utilisation de chemins relatifs, 'assets/js/jquery.js', est que si les actifs sont inclus à partir de/help/pages/faqs, le chemin devient relatif à ce point de départ, par ex. /help/pages/faqs/assets/js/jquery.js

J'espère que cela pourra aider

8
Si Griffiths