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?

Simon Suh
źródło

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.

Coomie
źródło
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.

Sourabh
źródło
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/

GibboK
źródło
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).

Brad Christie
źródło
38

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

Ćwiek
źródło
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ą.

Jewgienij Simkin
źródło
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

Roko C. Buljan
źródło
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.


źródło
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" />
Jenifer Venitta
źródło
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)

Musaranio
źródło