A cosa si riferisce “./” (punto slash) in termini di posizione del percorso di un file HTML?


228

So che ../significa salire su un sentiero, ma cosa ./significa esattamente?

Di recente ho seguito un tutorial e sembra che si riferisca a un solo file nella stessa posizione, quindi è necessario? Posso semplicemente non usarlo se è tutto ciò che sta facendo?

Risposte:


136

./è la cartella in cui si trova il file di lavoro :

Quindi in /index.htm ./è la directory principale
ma in /css/style.css ./è la cartella css.

Questo è importante da ricordare perché se si sposta CSS dal /index.htmal /css/style.csspercorso cambierà.


45
Come risponde alla domanda? Apparentemente, Simon Suh comprende che ./ si riferisce alla stessa posizione in cui si trova il file di riferimento. La parte principale della domanda è quindi: "Perché usarlo ed è assolutamente necessario?". L'unico motivo per preferire la sintassi di "./file" invece di "file" che sono riuscito a trovare è che ./ indica la cartella corrente e SOLO la cartella corrente. Quindi se c'è un qualche tipo di strumento / compilatore / etc che cerca il file, allora './file' cercherà SOLO nella cartella corrente, mentre 'file' cercherà ovunque lo strumento sia configurato per la ricerca (es. Root, cartella corrente , ecc.)
Marcel Toth

12
Quindi qual è la differenza tra ./abc.htme solo abc.htm?
Teemoh,

12
@Teemoh Sono gli stessi in JS, HTML e CSS. "./" è una vecchia convenzione di programmazione trasferita in queste nuove lingue. In altre circostanze potrebbero significare cose diverse. per esempio. se un "percorso" è impostato in un sistema operativo abc.exe potrebbe essere un file e ./abc.exe no.
Coomie

@MarcelToth dovresti davvero pubblicare questo come risposta!
Adam,

285

/ indica la radice dell'unità corrente;

./ indica la directory corrente;

../ indica il genitore della directory corrente.


Fa "header (" Location: ../ ");" reindirizzare alla directory principale?
belford,

3
in che modo ./index.html è diverso da solo index.html?
N-mangiò il

1
Ho un pezzo di codice da un modello, contiene ././cosa significa?
Aaron Franke,

120

È possibile utilizzare il seguente elenco come riferimento rapido:

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

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


13
Qual è la differenza tra "Questa posizione" e "Directory corrente"? Grazie.
WebBrother,

2
@WebBrother, Come si è scoperto ./ funziona solo in modalità doctype non rigorosa, mentre. funziona in entrambe le modalità, ecco un link stackoverflow.com/questions/296873/…
Makarov Sergey

Grazie. Questa chiara spiegazione ha appena risolto un problema così semplice che ero imbarazzato a chiedere ad alta voce.
Perdente Eddie il

57
.  = This location
.. = Up a directory

Quindi ./foo.htmlè giusto foo.html. Ed è facoltativo, ma può avere rilevanza se uno script ha generato il percorso (rilevanza per lo script che è, non come funziona il riferimento).


38

Sì, ./indica la directory di lavoro corrente. Puoi semplicemente fare riferimento al file direttamente per nome, senza di esso.


11

Hai ragione sul fatto che puoi ometterlo. È utile solo per chiarezza. Non c'è alcuna differenza funzionale tra il fatto di essere lì e non esserci.


16
It's useful only for clarity.O confusione, nel caso di OP - e il mio. :)
ANeves,

Non puoi ometterlo quando importi il ​​file javascript in html5. Ad esempio se hai una cartella js e un file index.html in una directory: lo <script src = "./ js / main.js"> </script> dichiarato in HTML 5 è corretto ma se ometti '. ' notazione, non caricherà il file.
MaXi32,

4
@ MaXi32 - Nel tuo esempio, <script src="js/main.js"></script>caricherà il file in HTML5 e./js/main.js
pmrotule il

9

Un breve e veloce riepilogo dei percorsi

Percorsi assoluti

http://website.com/assets/image.jpg
SE l'immagine non è nel tuo dominio - vai a cercare l'immagine


//website.com/assets/image.jpg
immagine caricata utilizzando i protocolli http o https


Percorsi relativi

(Per uso interno se l'immagine si trova sullo stesso server)


image.jpg
immagine nello stesso posto del documento che chiama l'immagine!


./image.jpg
Come sopra, immagine nello stesso posto del documento che chiama l'immagine!


/assets/image.jpg
Simile a Absolute Paths, semplicemente omettendo il protocollo e il nome di dominio
Vai a cercare la mia immagine a partire dalla mia cartella principale /, che inassets/


assets/image.jpg
questa volta le risorse si trovano nello stesso posto del documento, quindi vai nelle risorse per l'immagine


../assets/image.jpg
Da dove si trova il documento, torna indietro di una cartella ed entra ../assets


../../image.jpg
torna indietro di due cartelle , ecco la mia immagine!


../../assets/image.jpg
andare indietro di due cartelle e poi andare in ../../ assets


Esiste un modo per dire "vai alla radice definitiva e segui questo percorso" senza utilizzare il nome di dominio (ovvero, se hai bisogno che il sito funzioni in un ambiente di gestione temporanea)? Oppure devi solo fare qualcosa come ../../../../../../../../../../../../../ .. /../../../../../../../../../../../../../../../../. ./../../images/image.jpg e speri che copra ogni possibile scenario?
Mark Chapel,

1
@Mark se ho capito bene la tua domanda, devi "tornare indietro (tempi indefiniti) fino alla radice, quindi entrare images. Vedi Percorsi relativi e il terzo esempio/images/image. jpg
Roko C. Buljan

2

./indica la directory in cui ti trovi attualmente.


8
Questo è un po 'fuorviante. ./thisfile.txtnon è sempre equivalente a /thisfile.txt. Dipende interamente dalla directory in cui è in esecuzione il codice.
Jon Newmuis,

@JonathanNewmuis ha ragione ./thisfile.txt non è esplicitamente /thisfile.txt
Coomie

quindi se il codice viene eseguito in una posizione diversa, ./farà riferimento alla posizione originale?
CodyBugstein,

2

Ad esempio i file CSS sono nella cartella denominata CSSe i file HTML sono nella cartella HTML, ed entrambi questi sono nella cartella denominata XYZsignifica che facciamo riferimento ai file CSS in HTML come

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

Qui si ..sposta verso l'alto HTML
e si .riferisce alla directory correnteXYZ

--- con questa logica faresti semplicemente riferimento a:

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

3
Il secondo riferimento "CSS/style.css"non ha funzionato per me, forse intendevi "../CSS/style.css"?
ajax333221,

-1

In riferimento all'elenco di riferimento rapido, in particolare è possibile utilizzare quanto segue:

\. \ Directory principale + Directory corrente (lettera di unità)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.