Co oznacza „./” (ukośnik kropkowy) w odniesieniu do lokalizacji ścieżki do pliku HTML?


228

Wiem, że ../znaczy iść ścieżką, ale co to ./dokładnie znaczy?

Niedawno przechodziłem samouczek i wydaje się, że odnosi się to tylko do pliku w tej samej lokalizacji, więc czy w ogóle jest to konieczne? Czy mogę tego po prostu nie używać, jeśli to wszystko, co robi?

Odpowiedzi:


136

./to folder, w którym znajduje się plik roboczy :

Więc w /index.htm ./jest katalog główny,
ale w /css/style.css ./jest folder css.

Jest to ważne, aby pamiętać, bo jeśli przenieść z CSS /index.htmdo /css/style.cssścieżki zmieni.


45
Jak to odpowiada na pytanie? Najwyraźniej Simon Suh rozumie, że ./ odnosi się do tej samej lokalizacji, w której znajduje się plik odsyłający. Główna część pytania brzmi zatem: „Po co go używać i czy jest to w ogóle konieczne?”. Jedyny powód, dla którego wolę składnię „./plik” zamiast „pliku”, jaki udało mi się znaleźć, to fakt, że ./ oznacza bieżący folder i TYLKO bieżący folder. Więc jeśli istnieje jakiś rodzaj narzędzia / kompilatora / itp., Które wyszukuje plik, wówczas plik „./file” przeszuka TYLKO w bieżącym folderze, podczas gdy „plik” przeszuka wszędzie tam, gdzie narzędzie jest skonfigurowane do wyszukiwania (np. Root, bieżący folder itp.)
Marcel Toth,

12
Jaka jest różnica między ./abc.htmsprawiedliwym abc.htm?
Teemoh

12
@Tememoh Są takie same w JS, HTML i CSS. „./” to stara konwencja programistyczna, która została przeniesiona na te nowsze języki. W innych okolicznościach mogą oznaczać różne rzeczy. na przykład. jeśli w systemie operacyjnym ustawiona jest „ścieżka”, abc.exe może być plikiem, a plik ./abc.exe może nie być.
Coomie

@MarcelToth naprawdę powinieneś opublikować to jako odpowiedź!
Adam

285

/ oznacza katalog główny bieżącego dysku;

./ oznacza bieżący katalog;

../ oznacza element nadrzędny bieżącego katalogu.


Czy „nagłówek („ Lokalizacja: ../ ”);” przekierować do katalogu nadrzędnego?
Belford

3
czym różni się ./index.html od samego index.html?
N-zjadł

1
Mam fragment kodu z szablonu, który zawiera ././co to oznacza?
Aaron Franke

120

Poniższej listy można użyć jako szybkiego odniesienia:

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

Przydatny artykuł: https://css-tricks.com/quick-reminder-about-file-paths/


13
Jaka jest różnica między „This location” a „Current directory”? Dziękuję Ci.
WebBrother

2
@WebBrother, Jak się okazało ./ działa tylko w nieokreślonym trybie doctype, natomiast. działa w obu trybach, tutaj jest link stackoverflow.com/questions/296873/…
Makarov Sergey

Dziękuję Ci. To jasne wyjaśnienie właśnie rozwiązało problem tak podstawowy, że wstydziłem się zapytać na głos.
Dziurawy Eddie

57
.  = This location
.. = Up a directory

Więc ./foo.htmljest po prostu foo.html. Jest to opcjonalne, ale może mieć znaczenie, jeśli skrypt wygenerował ścieżkę (dotyczy to skryptu , a nie sposobu działania odwołania).


38

Tak, ./oznacza bieżący katalog roboczy. Możesz po prostu odwoływać się do pliku bezpośrednio według nazwy, bez niego.


11

Masz rację, że możesz to pominąć. Jest to przydatne tylko dla jasności. Nie ma funkcjonalnej różnicy między byciem tam a nieobecnością.


16
It's useful only for clarity.Lub zamieszanie, w przypadku OP - i moje. :)
ANeves

Nie można go pominąć podczas importowania pliku javascript do HTML5. Na przykład, jeśli masz folder js i plik index.html w jednym katalogu: <skrypt src = "./ js / main.js"> </script> zadeklarowany w html 5 jest poprawny, ale pomijasz '. „ notacja, nie załaduje pliku.
MaXi32,

4
@ MaXi32 - W twoim przykładzie <script src="js/main.js"></script>załaduje plik w HTML5, a także./js/main.js
pmrotule

9

Szybkie i małe podsumowanie na temat ścieżek

Ścieżki absolutne

http://website.com/assets/image.jpg
JEŻELI obraz nie znajduje się w Twojej domenie - poszukaj tam obrazu


//website.com/assets/image.jpg
obraz załadowany przy użyciu protokołów http lub https


Ścieżki względne

(Do użytku wewnętrznego, jeśli obraz znajduje się na tym samym serwerze)


image.jpg
obraz w tym samym miejscu, co dokument wywołujący obraz!


./image.jpg
Tak jak powyżej, obraz w tym samym miejscu, co dokument wywołujący obraz!


/assets/image.jpg
Podobnie do Absolute Paths, po prostu pomijając protokół i nazwę domeny
Idź przeszukaj mój obraz, zaczynając od mojego folderu głównego /, niż doassets/


assets/image.jpg
tym razem zasoby znajdują się w tym samym miejscu co dokument, więc przejdź do zasobów obrazu


../assets/image.jpg
Z miejsca, w którym znajduje się dokument, cofnij się o jeden folder i przejdź do ../assets


../../image.jpg
iść dwa foldery z powrotem , tam jest mój obraz!


../../assets/image.jpg
przejdź dwa foldery z powrotem ../../ i przejdź do assets


Czy istnieje sposób, aby powiedzieć „przejdź do ostatecznego katalogu głównego, a następnie podążaj tą ścieżką” bez używania nazwy domeny (tj. Jeśli potrzebujesz witryny do pracy w środowisku pomostowym)? A może po prostu musisz zrobić coś takiego jak ../../../../../../../../../../../../../ .. /../../../../../../../../../../../../../../../../. ./../../images/image.jpg i masz nadzieję, że obejmie każdy możliwy scenariusz?
Mark Chapel

1
@ Zaznacz, jeśli dobrze zrozumiałem twoje pytanie, musisz „cofnąć się (czas nieokreślony) do roota, a następnie wejść images. Zobacz Ścieżki względne i trzeci przykład/images/image. jpg
Roko C. Buljan

2

Tak, ./oznacza katalog, w którym aktualnie się znajdujesz.


8
To jest trochę mylące. ./thisfile.txtnie zawsze jest równoważne z /thisfile.txt. Jest to całkowicie zależne od katalogu, w którym wykonuje się kod.
Jon Newmuis

@JonathanNewmuis ma rację ./thisfile.txt nie jest jawnie /thisfile.txt
Coomie 29.09.11

więc jeśli kod zostanie wykonany w innym miejscu, ./odniesie się do pierwotnego miejsca?
CodyBugstein

2

Na przykład pliki css są w folderze o nazwie, CSSa pliki html są w folderze HTML, a oba są w folderze o nazwie XYZoznacza, że ​​pliki css w html nazywamy

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

Tutaj ..przenosi się do bieżącego katalogu HTML
i .odnosi się do niegoXYZ

--- według tej logiki można by się tak odnieść jako:

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

3
Drugie odniesienie "CSS/style.css"nie działało dla mnie, może miałeś na myśli "../CSS/style.css"?
ajax333221

-1

W odniesieniu do listy szybkich informacji możesz w szczególności użyć następujących opcji:

\. \ Katalog główny + katalog bieżący (litera dysku)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.