“ ./” (dot slash) หมายถึงอะไรในแง่ของตำแหน่งไฟล์พา ธ HTML


228

ฉันรู้ว่า../หมายถึงขึ้นไปบนเส้นทาง แต่สิ่งที่./หมายความว่าอะไรกันแน่?

ฉันเพิ่งจะผ่านการกวดวิชาและดูเหมือนว่าจะอ้างถึงเพียงไฟล์ในตำแหน่งเดียวกันดังนั้นจำเป็นหรือไม่? ฉันไม่สามารถใช้มันได้หรือเปล่า

คำตอบ:


136

./เป็นโฟลเดอร์ที่ไฟล์ทำงานอยู่:

ดังนั้นใน/index.htm ./ไดเรกทอรีราก
แต่ใน/css/style.css ./เป็นโฟลเดอร์ css

สิ่งนี้เป็นสิ่งสำคัญที่ต้องจำไว้เพราะหากคุณย้าย CSS จาก/index.htmไป/css/style.cssยังเส้นทางจะเปลี่ยนไป


45
คำถามนี้จะตอบคำถามได้อย่างไร เห็นได้ชัดว่า Simon Suh เข้าใจดีว่า. / อ้างถึงตำแหน่งเดียวกันกับที่ไฟล์อ้างอิงคือ ส่วนหลักของคำถามคือ: "ทำไมต้องใช้และจำเป็นต้องใช้เลย" เหตุผลเดียวที่ต้องการไวยากรณ์ของ "./file" แทนที่จะเป็น "file" ฉันสามารถค้นหาได้นั่นคือ. / หมายถึงโฟลเดอร์ปัจจุบันและเฉพาะโฟลเดอร์ปัจจุบันเท่านั้น ดังนั้นหากมีเครื่องมือ / คอมไพเลอร์ / etc บางชนิดที่ค้นหาไฟล์ดังนั้น './file' จะค้นหาเฉพาะในโฟลเดอร์ปัจจุบันในขณะที่ 'ไฟล์' จะค้นหาทุกที่ที่เครื่องมือถูกกำหนดค่าให้ค้นหา (เช่นรูทโฟลเดอร์ปัจจุบัน ฯลฯ )
Marcel Toth

12
ดังนั้นอะไรคือความแตกต่างระหว่าง./abc.htmและเพียงabc.htm?
Teemoh

12
@Teemoh พวกเขาเหมือนกันใน JS, HTML และ CSS "./" เป็นรูปแบบการเขียนโปรแกรมแบบเก่าที่นำไปสู่ภาษาที่ใหม่กว่านี้ ในกรณีอื่น ๆ พวกเขาอาจหมายถึงสิ่งที่แตกต่างกัน เช่น. หากมีการตั้งค่า "เส้นทาง" ในระบบปฏิบัติการ abc.exe อาจเป็นไฟล์และ. / abc.exe อาจไม่ทำงาน
Coomie

@Marcel ทั้งคุณควรโพสต์สิ่งนี้เป็นคำตอบ!
อดัม

285

/ หมายถึงรากของไดรฟ์ปัจจุบัน

./ หมายถึงไดเรกทอรีปัจจุบัน

../ หมายถึงผู้ปกครองของไดเรกทอรีปัจจุบัน


ทำการ "header (" Location: ../ ");" เปลี่ยนเส้นทางไปยังไดเรกทอรีหลักหรือไม่
belford

3
./index.html แตกต่างจาก just index.html อย่างไร
N-ate

1
ฉันมีโค้ดจากเทมเพลตมันมีความ././หมายว่าอะไร
Aaron Franke

120

คุณสามารถใช้รายการต่อไปนี้เป็นการอ้างอิงด่วน:

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

บทความที่มีประโยชน์: https://css-tricks.com/quick-reminder-about-file-paths/


13
"ตำแหน่งนี้" และ "ไดเรกทอรีปัจจุบัน" ต่างกันอย่างไร ขอบคุณ.
WebBrother

2
@ WebBrother ตามที่ปรากฏออกมา. / ใช้งานได้เฉพาะในโหมด doctype ที่ไม่เข้มงวดเท่านั้นในขณะที่ ทำงานได้ทั้งสองโหมดนี่คือลิงค์stackoverflow.com/questions/296873/…
Makarov Sergey

ขอบคุณ. คำอธิบายที่ชัดเจนนี้เพิ่งแก้ไขปัญหาพื้นฐานดังนั้นฉันจึงอายที่จะขอพูดออกมาดัง ๆ
Leaky Eddie

57
.  = This location
.. = Up a directory

ดังนั้นเป็นเพียง./foo.html foo.htmlและเป็นตัวเลือก แต่อาจมีความเกี่ยวข้องหากสคริปต์สร้างเส้นทาง (ความเกี่ยวข้องกับสคริปต์นั่นไม่ใช่วิธีการอ้างอิง)


38

ใช่./หมายถึงไดเรกทอรีทำงานปัจจุบัน คุณสามารถอ้างอิงไฟล์ได้โดยตรงตามชื่อโดยไม่มีไฟล์


11

คุณถูกต้องที่คุณสามารถละเว้น มันมีประโยชน์สำหรับความชัดเจนเท่านั้น ไม่มีความแตกต่างระหว่างการใช้งานและไม่มีอยู่


16
It's useful only for clarity.หรือความสับสนในกรณีของ OP - และของฉัน :)
ตอบ

คุณไม่สามารถละเว้นได้เมื่อคุณนำเข้าไฟล์จาวาสคริปต์ใน html5 ตัวอย่างเช่นหากคุณมีโฟลเดอร์ js และไฟล์ index.html ในไดเรกทอรีเดียว: <script src = "./ js / main.js"> </script> ที่ประกาศใน html 5 นั้นถูกต้อง แต่ถ้าคุณไม่ใส่ ' ' สัญกรณ์มันจะไม่โหลดไฟล์
MaXi32

4
@ MaXi32 - ในตัวอย่างของคุณ<script src="js/main.js"></script>จะโหลดไฟล์ใน HTML5 เช่นเดียวกับ./js/main.js
pmrotule

9

ปะยางรถเร็วและเล็กเกี่ยวกับเส้นทาง

เส้นทางที่แน่นอน

http://website.com/assets/image.jpg
หากภาพไม่ได้อยู่ในโดเมนของคุณ - ไปที่นั่นเพื่อดูภาพ


//website.com/assets/image.jpg
โหลดภาพโดยใช้โปรโตคอล http หรือ https


เส้นทางสัมพัทธ์

(สำหรับใช้ภายในหากภาพอยู่บนเซิร์ฟเวอร์เดียวกัน)


image.jpg
ภาพในสถานที่เดียวกันกับเอกสารเรียกภาพ!


./image.jpg
เช่นเดียวกับข้างต้น ภาพในสถานที่เดียวกันกับเอกสารเรียกภาพ!


/assets/image.jpg
คล้ายกับเส้นทางที่แอบโซลูทเพียงแค่ละเว้นโพรโทคอลและชื่อโดเมนไป
ค้นหาภาพของฉันที่เริ่มต้นจากโฟลเดอร์รูตของฉัน/มากกว่าเข้าไปassets/


assets/image.jpg
เวลานี้สินทรัพย์อยู่ในสถานที่เดียวกันกับเอกสารดังนั้นให้เข้าสู่เนื้อหาของภาพ


../assets/image.jpg
จากที่ใดของเอกสารให้ไปที่โฟลเดอร์หนึ่งแล้วย้อนกลับ ../ไปassets


../../image.jpg
ย้อนกลับ ไปสองโฟลเดอร์มีภาพของฉัน!


../../assets/image.jpg
ย้อนกลับ ไปสองโฟลเดอร์และไปกว่า ../../ assets


มีวิธีที่จะพูดว่า "ไปที่รูทสุดยอดแล้วทำตามเส้นทางนี้" โดยไม่ต้องใช้ชื่อโดเมน (เช่นถ้าคุณต้องการให้เว็บไซต์ทำงานในสภาพแวดล้อมการจัดเตรียม)? หรือว่าคุณต้องทำอะไรบางอย่างเช่น ../../../../../../../../../../../../../../../../../ .. /../../../../../../../../../../../../../../../../ ./../../images/image.jpg และหวังว่าจะครอบคลุมทุกสถานการณ์ที่เป็นไปได้หรือไม่
มาร์คชาเปล

1
@ ทำเครื่องหมายถ้าฉันได้รับคำถามของคุณถูกต้องคุณต้อง "ย้อนกลับ (ไม่ จำกัด จำนวนครั้ง) จนถึงรูทจากนั้นใส่เข้าไปimagesดูเส้นทางสัมพัทธ์และตัวอย่างที่สาม/images/image. jpg
Roko C. Buljan

2

ใช่./หมายถึงไดเรกทอรีที่คุณอยู่ในขณะนี้


8
นี่เป็นสิ่งที่ทำให้เข้าใจผิดเล็กน้อย จะไม่เทียบเท่ากับเสมอ./thisfile.txt /thisfile.txtมันขึ้นอยู่กับไดเรกทอรีที่รันโค้ดทั้งหมด
Jon Newmuis

@JonathanNewmuis ถูกต้อง ./thisfile.txt ไม่ชัดเจน /thisfile.txt
Coomie

ดังนั้นหากรหัสดำเนินการในสถานที่ที่แตกต่างกัน./จะอ้างถึงสถานที่เดิม?
CodyBugstein

2

ตัวอย่างเช่นไฟล์ css อยู่ในโฟลเดอร์ชื่อCSSและไฟล์ html อยู่ในโฟลเดอร์HTMLและทั้งสองไฟล์นี้อยู่ในโฟลเดอร์ชื่อXYZหมายความว่าเราอ้างอิงไฟล์ css ใน html เป็น

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

ที่นี่..เลื่อนขึ้นไปHTML
และ.อ้างอิงถึงไดเรกทอรีปัจจุบันXYZ

--- โดยตรรกะนี้คุณจะอ้างอิง:

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

3
การอ้างอิงที่สอง"CSS/style.css"ไม่ได้ผลสำหรับฉันคุณอาจหมายถึง"../CSS/style.css"อะไร
ajax333221

-1

ในการอ้างอิงถึงรายการอ้างอิงด่วนโดยเฉพาะคุณสามารถใช้สิ่งต่อไปนี้:

\. \ ไดเรกทอรีราก + ไดเรกทอรีปัจจุบัน (ตัวอักษรไดรฟ์)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.