A que se refere “./” (barra) em termos de um local do caminho do arquivo HTML?


228

Eu sei que ../significa seguir um caminho, mas o que ./significa exatamente?

Recentemente, eu estava passando por um tutorial e parece estar se referindo apenas a um arquivo no mesmo local, então é necessário? Posso simplesmente não usá-lo se é tudo o que está fazendo?

Respostas:


136

./é a pasta em que o arquivo de trabalho está:

Então, /index.htm ./é o diretório raiz,
mas /css/style.css ./está a pasta css.

É importante lembrar que, se você mover o CSS de /index.htmpara /css/style.csso caminho, será alterado.


45
Como isso responde à pergunta? Aparentemente, Simon Suh entende que ./ se refere ao mesmo local em que o arquivo de referência está. A parte principal da pergunta é: "Por que usá-lo e é necessário?". O único motivo para preferir a sintaxe de "./file" em vez de "file" que consegui encontrar é que ./ significa pasta atual e SOMENTE a pasta atual. Portanto, se houver algum tipo de ferramenta / compilador / etc que procure o arquivo, './file' pesquisará APENAS na pasta atual, enquanto 'file' procurará onde quer que a ferramenta esteja configurada para pesquisar (por exemplo, raiz, pasta atual , etc)
Marcel Toth

12
Então, qual é a diferença entre ./abc.htme apenas abc.htm?
Teemoh 28/03

12
@Teemoh Eles são os mesmos em JS, HTML e CSS. O "./" é uma convenção de programação antiga que foi transferida para esses idiomas mais recentes. Em outras circunstâncias, eles podem significar coisas diferentes. por exemplo. se um "caminho" estiver definido em um SO abc.exe poderia ser um arquivo e ./abc.exe talvez não.
Coomie

@ MarcelToth você realmente deve postar isso como resposta!
Adam

285

/ significa a raiz da unidade atual;

./ significa o diretório atual;

../ significa o pai do diretório atual.


O "cabeçalho (" Localização: ../ ");" redirecionar para o diretório pai?
belford

3
Qual é a diferença entre ./index.html e apenas index.html?
N-ate

1
Eu tenho um pedaço de código de um modelo, ele contém ././o que isso significa?
Aaron Franke

120

Você pode usar a seguinte lista como referência rápida:

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

Artigo útil: https://css-tricks.com/quick-reminder-about-file-paths/


13
Qual a diferença entre "Este local" e "Diretório atual"? Obrigado.
WebBrother

2
@WebBrother, como se viu ./ funciona apenas no modo doctype não estrito, enquanto. funciona em ambos os modos, aqui está um link stackoverflow.com/questions/296873/...
Makarov Sergey

Obrigado. Essa explicação clara resolveu um problema tão básico que fiquei com vergonha de perguntar em voz alta.
Leaky Eddie

57
.  = This location
.. = Up a directory

Então, ./foo.htmlé justo foo.html. E é opcional, mas pode ter relevância se um script gerar o caminho (relevância para o script, isto é, não como a referência funciona).


38

Sim, ./significa o diretório de trabalho atual. Você pode apenas referenciar o arquivo diretamente pelo nome, sem ele.


11

Você está certo de que pode omiti-lo. É útil apenas para maior clareza. Não há diferença funcional entre estar lá e não estar lá.


16
It's useful only for clarity.Ou confusão, no caso da OP - e na minha. :)
ANeves 29/09

Você não pode omiti-lo quando importa o arquivo javascript em html5. Por exemplo, se você tiver uma pasta js e um arquivo index.html em um diretório: O <script src = "./ js / main.js"> </script> declarado no html 5 está correto, mas se você omitir '. " notação, ele não carregará o arquivo.
MaXi32

4
@ MaXi32 - No seu exemplo, <script src="js/main.js"></script>carregará o arquivo em HTML5 e também./js/main.js
pmrotule

9

Uma rápida e pequena recapitulação sobre caminhos

Caminhos absolutos

http://website.com/assets/image.jpg
SE a imagem não estiver no seu domínio - procure uma imagem


//website.com/assets/image.jpg
imagem carregada usando os protocolos http ou https


Caminhos relativos

(Para uso interno, se a imagem estiver no mesmo servidor)


image.jpg
imagem no mesmo local do documento que chama a imagem!


./image.jpg
O mesmo que acima, imagem no mesmo local do documento que chama a imagem!


/assets/image.jpg
Semelhante aos Caminhos Absolutos, apenas omitindo o protocolo e o nome de domínio.
Pesquise minha imagem começando na minha pasta raiz /e depois emassets/


assets/image.jpg
neste momento, os ativos estão no mesmo local que o documento; portanto, vá para ativos da imagem


../assets/image.jpg
De onde o documento está, volte uma pasta e entre em ../assets


../../image.jpg
ir duas pastas de volta , não é a minha imagem!


../../assets/image.jpg
ir duas pastas para trás ../../ e que ir em assets


Existe uma maneira de dizer "vá para a raiz definitiva e siga esse caminho" sem usar o nome de domínio (por exemplo, se você precisar que o site funcione em um ambiente de teste)? Ou você apenas precisa fazer algo como ../../../../../../../../../../../../../ .. /../../../../../../../../../../../../../../../../. ./../../images/image.jpg e espero que abranja todos os cenários possíveis?
Mark Chapel,

1
@ Marcos se eu tenho a sua pergunta certa, você precisa "voltar (por tempos indefinidos) até raiz, em seguida, digite imagesVeja Caminhos relativos e o terceiro exemplo./images/image. jpg
Roko C. Buljan

2

Sim ./significa o diretório em que você está atualmente.


8
Isso é um pouco enganador. ./thisfile.txtnem sempre é equivalente a /thisfile.txt. É totalmente dependente do diretório em que o código está sendo executado.
Jon Newmuis

@JonathanNewmuis está certo ./thisfile.txt não está explicitamente /thisfile.txt
Coomie

portanto, se o código for executado em um local diferente, ./ele se referirá ao local original?
CodyBugstein

2

Por exemplo, os arquivos css estão na pasta denominada CSSe os arquivos html estão na pasta HTML, e ambos estão na pasta denominada XYZsignifica que nos referimos aos arquivos css em html como

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

Aqui ..move-se para HTML
e .refere-se ao diretório atualXYZ

--- por essa lógica, você apenas faria referência como:

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

3
A segunda referência "CSS/style.css"não funcionou para mim, talvez você quis dizer "../CSS/style.css"?
ajax333221

-1

Em referência à lista de referências rápidas, especificamente você pode usar o seguinte:

\. \ Diretório raiz + Diretório atual (letra da unidade)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.