“./” (nokta eğik çizgi) bir HTML dosya yolu konumu açısından neyi ifade eder?


228

Biliyorum ../bir yoldan çıkmak ./demek , ama tam olarak ne demek?

Geçenlerde bir öğretici geçiyordu ve aynı yerde sadece bir dosyaya atıfta gibi görünüyor, bu yüzden hiç gerekli mi? Yaptığı tek şey buysa kullanamaz mıyım?

Yanıtlar:


136

./çalışma dosyasının bulunduğu klasördür :

Yani /index.htm ./kök dizin
ama içinde /css/style.css ./css klasörü.

Bu gelen CSS taşırsanız çünkü hatırlamak önemlidir /index.htmiçin /css/style.cssdeğişecek yolu.


45
Bu soruya nasıl cevap veriyor? Görünüşe göre, Simon Suh ./ dosyasının yönlendiren dosyanın bulunduğu konumu ifade ettiğini biliyor. O halde sorunun ana kısmı şudur: "Neden kullanılmalı ve hiç gerekli mi?". Bulabildiğim "dosya" yerine "./file" sözdizimini tercih etmenin tek nedeni ./ dosyasının geçerli klasör ve SADECE geçerli klasör anlamına gelmesidir. Bu nedenle, dosyayı arayan bir tür araç / derleyici / vb. Varsa, './file' SADECE geçerli klasörde arama yaparken, 'dosya' aracın arama yapmak için yapılandırıldığı her yerde arama yapar (ör. Root, geçerli klasör) vs.)
Marcel Toth

12
Peki ./abc.htmve sadece arasındaki fark abc.htmnedir?
Mart'ta Teemoh

12
@Teemoh JS, HTML ve CSS'de aynı. "./" bu yeni dillere aktarılan eski bir programlama kuralıdır. Diğer durumlarda farklı şeyler ifade edebilirler. Örneğin. OS abc.exe bir "yol" ayarlanırsa, bir dosya olabilir ve ./abc.exe olmayabilir.
Coomie

@MarcelToth bunu gerçekten bir cevap olarak göndermelisiniz!
Adam

285

/ mevcut sürücünün kökü anlamına gelir;

./ geçerli dizin anlamına gelir;

../ geçerli dizinin üst öğesi anlamına gelir.


"Üstbilgi (" Konum: ../ ");" üst dizine yönlendirilsin mi?
belford

3
./index.html dosyasının sadece index.html'den farkı nedir?
N-yedi

1
Bir şablondan kod parçası var, bu ././ne anlama geliyor içeriyor ?
Aaron Franke

121

Hızlı referans olarak aşağıdaki listeyi kullanabilirsiniz:

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

Yararlı makale: https://css-tricks.com/quick-reminder-about-file-paths/


13
"Bu konum" ile "Geçerli dizin" arasındaki fark nedir? Teşekkür ederim.
WebBrother

2
@WebBrother, Görünüşe göre ./ sadece katı olmayan doktipi modunda çalışıyor. her iki modda da çalışır, işte bir link stackoverflow.com/questions/296873/…
Makarov Sergey

Teşekkür ederim. Bu net açıklama sadece yüksek sesle sormak utandım çok temel bir sorunu çözdü.
Sızdıran Eddie

57
.  = This location
.. = Up a directory

Yani, ./foo.htmlsadece foo.html. Ve isteğe bağlıdır, ancak bir komut dosyasının yolu oluşturmasıyla ilgili olabilir ( komut dosyasının alaka düzeyi , başvurunun nasıl çalıştığı değil).


38

Evet, ./geçerli çalışma dizini anlamına gelir. Dosyaya doğrudan, adsız olarak başvurabilirsiniz.


11

Bunu atlayabileceğiniz konusunda haklısınız. Sadece netlik için kullanışlıdır. Orada olmak ve orada olmamak arasında işlevsel bir fark yoktur.


16
It's useful only for clarity.Veya OP'nin durumunda karışıklık - ve benim. :)
ANeves

HTML5'te javascript dosyasını içe aktardığınızda bunu atlayamazsınız. Örneğin u bir klasörde js klasörü ve index.html dosyası varsa: html 5'te bildirilen <script src = "./ js / main.js"> </script> doğrudur, ancak 'işaretini atlarsanız. ' gösterimi, dosyayı yüklemez.
MaXi32

4
@ MaXi32 - Örneğin, <script src="js/main.js"></script>dosyayı HTML5'e de ./js/main.js
yükleyecek

9

Yollar hakkında hızlı ve küçük bir özet

Mutlak yollar

http://website.com/assets/image.jpg
Resim alan adınızda değilse - gidin ve resim için buraya bakın


//website.com/assets/image.jpg
http veya https protokolleri kullanılarak yüklenen resim


Göreli yollar

( Görüntü aynı sunucudaysa dahili kullanım için)


image.jpg
resmi , resmi çağıran belge ile aynı yerde!


./image.jpg
Yukarıdaki ile aynı, görüntü resmi çağıran belge ile aynı yerde!


/assets/image.jpg
Sadece protokol ve etki alanı adı atlayarak, Mutlak Yolları benzer
Git benim kök klasörden başlayarak Resmimi arama /içine verilmek yerine,assets/


assets/image.jpg
bu sefer varlıklar belge ile aynı yerdedir, bu nedenle resim için varlıklara gidin


../assets/image.jpg
Belgenin bulunduğu yerden bir klasör geri ../ gidin veassets


../../image.jpg
iki klasör geri git , benim görüntüm var!


../../assets/image.jpg
go iki klasör geri ../../ ve içine halindeyken daha assets


Etki alanı adını kullanmadan (örneğin, sitenin bir hazırlama ortamında çalışması gerekiyorsa) "nihai köke git ve sonra bu yolu izle" demenin bir yolu var mı? Yoksa sadece ../../../../../../../../../../../../../ .. gibi bir şey yapmak zorunda mısın? /../../../../../../../../../../../../../../../../. ./../../images/image.jpg ve umabileceğiniz her senaryoyu umar mısınız?
Mark Chapel

1
@ Sorunuzu doğru anladıysam, "root'a kadar geri dönün (belirsiz süreler), sonra girin images. Göreli yollar ve üçüncü örnek/images/image. jpg
Roko C. Buljan

2

Evet ./, şu anda bulunduğunuz dizin anlamına gelir.


8
Bu biraz yanıltıcı. ./thisfile.txther zaman eşdeğer değildir /thisfile.txt. Bu tamamen kodun hangi dizinde yürütüldüğüne bağlıdır.
Jon Newmuis 29:11

@JonathanNewmuis haklı ./thisfile.txt açıkça /thisfile.txt değil
Coomie

kod farklı bir yerde ./yürütülürse, orijinal yere atıfta bulunacaktır?
CodyBugstein

2

Örneğin, css dosyaları şu klasörde bulunur: CSS ve html dosyaları klasörde HTMLve her ikisi de XYZhtml'deki css dosyalarına

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

Buraya .. geçerli dizine gider HTML
ve .bu dizine başvururXYZ

--- bu mantıkla şu şekilde referans vereceksiniz:

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

3
İkinci referans "CSS/style.css"benim için işe yaramadı, belki demek istedin "../CSS/style.css"?
ajax333221

-1

Hızlı başvuru listesine referansla, özellikle aşağıdakileri kullanabilirsiniz:

\. \ Kök Dizin + Geçerli dizin (Sürücü Harfi)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.