ฉันสามารถทำซ้ำสิ่งนี้ได้และฉันรู้สึกประหลาดใจเล็กน้อย (เล็กน้อย) กับมัน ฉันจะมีสมมติฐานเดียวกับคุณว่าสิ่งนี้จะ "ใช้งานได้" ฉันคาดว่าเนื่องจากเราใช้ส่วนขยาย "ระยะไกล - WSL" ในกรณีนี้ ส่วนขยายจะจัดการการแปลเส้นทาง น่าเสียดายที่ดูเหมือนจะไม่เป็นเช่นนั้น
อาจไม่ใช่ตัวเลือกสำหรับส่วนขยาย VSCode เพื่อแก้ไขเส้นทางของไฟล์เมื่อ อื่นๆ (ไม่ใช่ส่วนขยาย) กำลังดำเนินการกับไฟล์
สิ่งที่เกิดขึ้นจริงคือเส้นทางที่ส่งผ่านไปยังเบราว์เซอร์ Windows ของคุณนั้น ไฟล์://home/pypy/books/paper.html
และเบราว์เซอร์ Windows จะไม่พบไฟล์ที่ระบุพาธนั้น ตามที่คุณพบ สำหรับเบราว์เซอร์ Windows ที่ควรมีลักษณะดังนี้:
ไฟล์://wsl$/ubuntu/home/pypy/books/paper.html
# หรือ
ไฟล์://wsl.local/ubuntu/home/pypy/books/paper.html
# ส่วน "อูบุนตู" อาจแตกต่างกันไปขึ้นอยู่กับชื่อการแจกจ่ายที่แน่นอนของคุณ
หมายเหตุด้านข้าง: The %24
ที่คุณเห็นเป็นเพียงรูปแบบการเข้ารหัส URL ของ $
.
มีวิธีแก้ไขหลายประการ:
อันดับแรก วิธีแก้ปัญหาง่ายๆ คือการใช้ WSL ระยะไกล: เปิดใหม่ในโฟลเดอร์ใน Windows หนังบู๊:
- ใน VSCode กด Ctrl+กะ+พี เพื่อเปิด Command Palette
- เริ่มพิมพ์ "เปิดใหม่" แล้วเลือกตัวเลือก WSL ระยะไกล: เปิดใหม่ในโฟลเดอร์ใน Windows
- เรียกใช้โครงการ HTML ของคุณอีกครั้งผ่าน F5
เบราว์เซอร์ควรเปิดอย่างถูกต้องโดยใช้ หน้าต่าง (แทนที่จะเป็นเส้นทาง WSL/Linux)
ตัวเลือกที่สองและตัวเลือกที่คุณมักจะใช้เมื่อคุณพัฒนา HTML ขั้นสูงขึ้นคือการเรียกใช้เว็บเซิร์ฟเวอร์ภายในเครื่อง สิ่งนี้จะช่วยให้คุณสามารถพัฒนาในสภาพแวดล้อม "โลกแห่งความจริง" ได้มากขึ้น เนื่องจากคุณจะต้องดำเนินการเพื่อให้ฟีเจอร์ต่างๆ ทำงานได้ (เช่น Node และเว็บเฟรมเวิร์กต่างๆ เช่น Svelte, React และอื่นๆ เป็นต้น)
สิ่งนี้จะส่งผลกระทบต่อเว็บไซต์ของฉันในอนาคตหรือไม่ มันจะทำให้เกิดปัญหาการโฮสต์หรือไม่?
เอาตรงๆเลยนะ สามารถแต่ไม่ใช่ถ้าคุณทำในสิ่งที่ "ถูกต้อง" เพื่อให้แน่ใจว่าเส้นทางใน HTML ของคุณนั้น ญาติ ไปยังไดเร็กทอรีของไฟล์ ตัวอย่างเช่น คุณ สามารถ อ้างถึงไฟล์รูปภาพในไดเร็กทอรีย่อยของไฟล์ HTML โดยระบุ:
<img src="file://wsl.local/ubuntu/home/pypy/books/images/logo.png" />
และจะใช้งานได้เมื่อดูไฟล์ในเครื่องของคุณ แน่นอน มันจะล้มเหลวเมื่อคุณโฮสต์บนเว็บเซิร์ฟเวอร์จริง
ให้ใช้เส้นทางสัมพัทธ์แทน:
<img src="images/logo.png" />
... ซึ่งจะใช้งานได้ทั้ง VSCode เมื่อดูในเครื่อง (อย่างน้อยหลังจากเลือก เปิดใหม่ในโฟลเดอร์ใน Windows) และเมื่อโฮสต์บนเว็บ