ฉันพยายามให้บริการแอพและไฟล์ที่รวม webpack จากเส้นทางบริบท ไฟล์กำหนดค่า Nginx มีดังต่อไปนี้:
nginx.conf
เซิร์ฟเวอร์ {
ฟัง 80;
รูท /usr/share/nginx/html;
ดัชนี index.html index.htm;
ที่ตั้ง / {
try_files $uri $uri/ /mfeexample/index.html;
}
สถานที่ /mfeexample/ {
try_files $uri $uri/ /mfeexample/index.html;
}
}
ไฟล์นักเทียบท่า
#สร้างสภาพแวดล้อม
จาก node:14.2.0-alpine เป็น build
#ทำเนียบการทำงาน
เวิร์คดีอาร์ /app
#คัดลอกไฟล์แพ็กเกจโหนดไปยังไดเร็กทอรีการทำงาน
แพ็คเกจ COPY.* .
#การติดตั้งการพึ่งพาแอป
RUN การติดตั้ง npm -- เงียบ
#คัดลอกโค้ดทั้งหมด
สำเนา .
#RUN งานสร้าง
RUN npm รันบิลด์
#บรรยากาศการผลิต
จาก nginx:เสถียรอัลไพน์
# ปรับใช้แอปพลิเคชันที่สร้างขึ้นกับเซิร์ฟเวอร์ Nginx
# /usr/share/nginx/html เป็นไดเร็กทอรีแบบคงที่ของ Nginx ที่ใช้ในการให้บริการแอปพลิเคชัน
COPY --from=build /app/build /usr/share/nginx/html/mfeexample
# ลบการกำหนดค่าเริ่มต้นของ Nginx ในคอนเทนเนอร์ Nginx
RUN rm /etc/nginx/conf.d/default.conf
# ใช้ไฟล์การกำหนดค่าใหม่
สำเนา nginx/nginx.conf /etc/nginx/conf.d/default.conf
# เปิดเผยแอปพลิเคชันบน PORT 80
เปิดเผย 80
# เริ่มเซิร์ฟเวอร์ Nginx
CMD ["nginx", "-g", "daemon off;"]
ตอนนี้ดูที่แท็บเครือข่ายในเบราว์เซอร์ ฉันพบไฟล์ทั้งหมดที่ให้บริการที่ http://localhost:3000/mfeexample/ นั่นคือสิ่งที่ฉันต้องการ อย่างไรก็ตาม เมื่อฉันลองใช้เส้นทางที่ซ้อนกัน เส้นทางที่ซ้อนกัน ฉันหมายถึง http://localhost:3000/mfeexample/customer/ โดยดูที่แท็บเครือข่ายอีกครั้ง nginx กำลังมองหาไฟล์ภายใต้ http://localhost:3000/mfeexample/ customer/index.html แต่ฉันต้องการให้ nginx ค้นหาไฟล์จาก http://localhost:3000/mfeexample เสมอ
PS: โปรดจำไว้ว่าฉันยังใหม่กับ nginx และฉันได้ทำการทดลองและข้อผิดพลาดเพื่อให้ได้ถึงจุดนี้
ขอบคุณล่วงหน้า.