À quoi fait référence «./» (barre oblique) en termes d'emplacement de chemin de fichier HTML?


228

Je sais que cela ../signifie monter un chemin, mais qu'est-ce que cela ./signifie exactement?

J'étais récemment en train de passer par un tutoriel et il semble ne faire référence qu'à un fichier au même endroit, est-ce que c'est nécessaire du tout? Puis-je simplement ne pas l'utiliser si c'est tout ce qu'il fait?

Réponses:


136

./est le dossier dans lequel se trouve le fichier de travail :

Donc, dans /index.htm ./le répertoire racine,
mais dans/css/style.css ./ le dossier css.

Ceci est important à retenir car si vous déplacez CSS de /index.htmvers /css/style.cssle chemin, cela changera.


45
Comment cela répond-il à la question? Apparemment, Simon Suh comprend que ./ fait référence au même emplacement où se trouve le fichier référent. La partie principale de la question est alors: "Pourquoi l'utiliser et est-ce nécessaire du tout?". La seule raison de préférer la syntaxe de "./file" au lieu de "fichier" que j'ai pu trouver est que ./ signifie le dossier actuel et UNIQUEMENT le dossier actuel. Donc, s'il existe une sorte d'outil / compilateur / etc qui recherche le fichier, alors './file' recherchera UNIQUEMENT dans le dossier actuel, tandis que 'fichier' recherchera partout où l'outil est configuré pour rechercher (par exemple, racine, dossier actuel , etc.)
Marcel Toth

12
Alors, quelle est la différence entre ./abc.htmet juste abc.htm?
Teemoh

12
@Teemoh Ils sont les mêmes en JS, HTML et CSS. Le "./" est une ancienne convention de programmation qui a été transférée dans ces nouvelles langues. Dans d'autres circonstances, cela pourrait signifier des choses différentes. par exemple. si un «chemin» est défini dans un système d'exploitation, abc.exe peut être un fichier et ./abc.exe peut-être pas.
Coomie

@MarcelToth vous devriez vraiment poster ceci comme réponse!
Adam

285

/ signifie la racine du lecteur actuel;

./ signifie le répertoire courant;

../ signifie le parent du répertoire courant.


Est-ce que "l'en-tête (" Emplacement: ../ ");" rediriger vers le répertoire parent?
belford

3
en quoi ./index.html est-il différent de simplement index.html?
N-mangé le

1
J'ai un morceau de code d'un modèle, il contient ././ce que cela signifie?
Aaron Franke

120

Vous pouvez utiliser la liste suivante comme référence rapide:

   /   = Root directory
   .   = This location
   ..  = Up a directory
   ./  = Current directory
   ../ = Parent of current directory
   ../../ = Two directories backwards

Article utile: https://css-tricks.com/quick-reminder-about-file-paths/


13
Quelle différence entre "Cet emplacement" et "Répertoire actuel"? Je vous remercie.
WebBrother

2
@WebBrother, car il s'est avéré que ./ ne fonctionne qu'en mode doctype non strict, tandis que. fonctionne dans les deux modes, voici un lien stackoverflow.com/questions/296873/…
Makarov Sergey

Je vous remercie. Cette explication claire vient de résoudre un problème si basique que j'ai été gêné de demander à haute voix.
Leaky Eddie

57
.  = This location
.. = Up a directory

Alors, ./foo.htmlc'est juste foo.html. Et c'est facultatif, mais peut avoir de la pertinence si un script a généré le chemin (pertinence pour le script c'est-à-dire, pas comment fonctionne la référence).


38

Oui, ./signifie le répertoire de travail actuel. Vous pouvez simplement référencer le fichier directement par son nom, sans lui.


11

Vous avez raison de pouvoir l'omettre. C'est utile uniquement pour plus de clarté. Il n'y a pas de différence fonctionnelle entre le fait d'être là et de ne pas être là.


16
It's useful only for clarity.Ou confusion, dans le cas d'OP - et le mien. :)
ANeves

Vous ne pouvez pas l'omettre lorsque vous importez un fichier javascript en html5. Par exemple, si vous avez un dossier js et un fichier index.html dans un répertoire: Le <script src = "./ js / main.js"> </script> déclaré en html 5 est correct mais si vous omettez le '. " notation, il ne chargera pas le fichier.
MaXi32

4
@ MaXi32 - Dans votre exemple, <script src="js/main.js"></script>chargera le fichier en HTML5 ainsi que./js/main.js
pmrotule

9

Un petit résumé rapide sur chemins

Chemins absolus

http://website.com/assets/image.jpg
SI l'image n'est pas sur votre domaine - allez y chercher l'image


//website.com/assets/image.jpg
image chargée à l'aide des protocoles http ou https


Chemins relatifs

(Pour usage interne si l'image est sur le même serveur)


image.jpg
image au même endroit que le document appelant l'image!


./image.jpg
Comme ci-dessus, image au même endroit que le document appelant l'image!


/assets/image.jpg
Semblable à Absolute Paths, en omettant simplement le protocole et le nom de domaine
Allez chercher mon image à partir de mon dossier racine /, puis dansassets/


assets/image.jpg
cette fois, les éléments sont au même endroit que le document, alors allez dans les éléments pour l'image


../assets/image.jpg
D'où le document est, allez un dossier en arrière ../ et aller dansassets


../../image.jpg
aller deux dossiers en arrière , il y a mon image!


../../assets/image.jpg
revenir en arrière et aller dans deux dossiers ../../ assets


Existe-t-il un moyen de dire "allez à la racine ultime et suivez ce chemin" sans utiliser le nom de domaine (c'est-à-dire si vous avez besoin que le site fonctionne dans un environnement de transfert)? Ou devez-vous simplement faire quelque chose comme ../../../../../../../../../../../../../ .. /../../../../../../../../../../../../../../../../. ./../../images/image.jpg et espérons que cela couvre tous les scénarios possibles?
Mark Chapel

1
@Mark si j'ai bien répondu à votre question, vous devez "revenir en arrière (temps indéfini) jusqu'à la racine, puis entrer images. Voir Chemins relatifs et troisième exemple/images/image. jpg
Roko C. Buljan

2

Ouais ./signifie le répertoire dans lequel vous vous trouvez actuellement.


8
C'est un peu trompeur. ./thisfile.txtn'est pas toujours équivalent à /thisfile.txt. Cela dépend entièrement du répertoire dans lequel le code s'exécute.
Jon Newmuis

@JonathanNewmuis a raison ./thisfile.txt n'est pas explicitement /thisfile.txt
Coomie

donc si le code s'exécute dans un endroit différent, ./se référera à l'endroit d'origine?
CodyBugstein

2

Par exemple, les fichiers css sont dans le dossier nommé CSSet les fichiers html sont dans le dossier HTML, et les deux sont dans le dossier nommé XYZsignifie que nous référons les fichiers css en html comme

<link rel="stylesheet" type="text/css" href="./../CSS/style.css" />

Ici ..se déplace vers HTML
et se .réfère au répertoire courantXYZ

--- selon cette logique, vous vous référeriez comme:

<link rel="stylesheet" type="text/css" href="CSS/style.css" />

3
La deuxième référence "CSS/style.css"n'a pas fonctionné pour moi, peut-être que vous vouliez dire "../CSS/style.css"?
ajax333221

-1

En référence à la liste de référence rapide, vous pouvez en particulier utiliser les éléments suivants:

\. \ Répertoire racine + répertoire actuel (lettre de lecteur)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.