ดูเหมือนว่า base-href ในส่วนหัวของ HTML จะถูกละเว้นสำหรับเนื้อหาทั้งหมดที่โหลด

บางทีฉันอาจมีความคิดทั้งหมดนี้ผิด ดังนั้นเรามาดูกันดีกว่า ฉันมี HTML ต่อไปนี้

<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <base href="/xyz"> 
        <link rel="stylesheet" href="styles.css">
    </head>
    <body>
    <app-root></app-root>
    <script src="runtime.js" defer=""></script><script src="polyfills.js" defer=""></script><script src="main.js" defer=""></script></body>
</html>

ตอนนี้ เมื่อฉันพยายามโหลดสิ่งนี้ในเบราว์เซอร์ด้วย URL ต่อไปนี้: http://localhost:8080/xyz มันจะโหลด index.html แต่สำหรับเนื้อหาทั้งหมด (สไตล์และไฟล์จาวาสคริปต์) ฉันได้รับ 404

ป้อนคำอธิบายรูปภาพที่นี่

ฉันคาดหวังเพราะฉันมี ฐาน href=/xyz ที่จะนำหน้า URL เนื้อหาทั้งหมดด้วย URL นั้น แต่อย่างที่คุณเห็นแล้วว่าไม่มี

เพื่อความสมบูรณ์ นี่คือโครงสร้างไฟล์ของฉัน:

./server.js
./xyz/index.html
      styles.css
      .....

ดังนั้นเซิร์ฟเวอร์จึงให้บริการไฟล์ทั้งหมดจากเส้นทาง /xyz


person Jeanluca Scaljeri    schedule 24.02.2021    source แหล่งที่มา


คำตอบ (1)


เส้นทางสัมพัทธ์ได้รับการแก้ไขโดยการใช้ URL พื้นฐาน (http://localhost:8080/xyz) โดยลบทุกอย่างที่อยู่หลัง / สุดท้ายในเส้นทาง (ให้ http://localhost:8080/ แก่คุณ) จากนั้นจึงต่อท้ายเส้นทางใหม่ (http://localhost:8080/styles.css)

หากคุณต้องการ /xyz/styles.css คุณจะต้องใส่ / ที่ส่วนท้ายของเส้นทางฐานของคุณ: <base href="/xyz/">

person Quentin    schedule 24.02.2021
comment
โอเค นั่นสมเหตุสมผลแล้ว ในกรณีของฉัน วิธีแก้ไขคือตั้งค่าฐาน href เป็น: . - person Jeanluca Scaljeri; 24.02.2021