อะไรคือความแตกต่างระหว่างพารามิเตอร์ --base-href และ --deploy-url ของเครื่องมือ angular-cli


93

เอกสารประกอบของ Angular แจ้งว่าฉันควรใช้--base-hrefพารามิเตอร์ในแอปพลิเคชัน Angular build สำหรับการใช้งานจริงเมื่อจะนำไปใช้งานในโฟลเดอร์ย่อยของเซิร์ฟเวอร์:

หากคุณคัดลอกไฟล์ลงในโฟลเดอร์ย่อยของเซิร์ฟเวอร์ให้ต่อท้ายแฟล็ก build --base-hrefและตั้งค่าให้<base href>เหมาะสม

ตัวอย่างเช่นหากindex.htmlอยู่บนเซิร์ฟเวอร์ที่/my/app/index.htmlให้ตั้งค่า href พื้นฐานเป็น<base href="https://stackoverflow.com/my/app/">เช่นนี้

https://angular.io/guide/deployment

อย่างไรก็ตาม angular-cli มี--deploy-urlพารามิเตอร์ เอกสารประกอบเครื่องมืออธิบายว่า:

URL ที่จะนำไฟล์ไปใช้งาน

https://github.com/angular/angular-cli/wiki/build

ฉันได้เห็นโซลูชันที่ใช้อินส--deploy-urlแตนซ์--base-hrefเมื่อแอปพลิเคชันกำลังจะถูกปรับใช้ในโฟลเดอร์ย่อยของเซิร์ฟเวอร์

คำถาม

อะไรคือความแตกต่างระหว่าง--base-hrefและ--deploy-urlพารามิเตอร์ของเครื่องมือเชิงมุม? ฉันควรใช้แต่ละตัวเมื่อใด

คำตอบ:


89
  • กำลังใช้ Base-hrefโดยการกำหนดเส้นทาง
  • deploy-urlมีไว้สำหรับสินทรัพย์

ในกรณีส่วนใหญ่ base-href ก็เพียงพอแล้ว

โปรดดูโพสต์เหล่านี้:


28

ในการวางสคริปต์ของฉันไว้ในโฟลเดอร์ " / test / app1 / script / " ฉันใช้คำสั่งนี้:

ng build --prod --base-href /test/app1/ --deploy-url /test/app1/script/

ดังนั้นแอปของฉันจึงสามารถเข้าถึงได้ที่https://example.com/test/app1/แต่สคริปต์ JS และ CSS ของฉันอยู่ในไดเรกทอรีhttps://example.com/test/app1/script/


นี่เป็นคำตอบที่ดี แต่ขอเตือนว่าอาจส่งผลต่อการโหลดโมดูลที่ขี้เกียจ เช่น: { path: 'myModule', loadChildren: () => import( './myModule/my.module' ).then( m => m.MyModule ) }
Ken Hadden

11

หากฉันต้องการใช้ / ผู้ใช้เป็นฐานแอปพลิเคชันสำหรับเราเตอร์และ / สาธารณะเป็นฐานสำหรับสินทรัพย์ของฉัน

ng build --prod --base-href /users --deploy-url /public 

ดูบล็อกของ Shekhar Gulatiสำหรับตัวอย่างโดยละเอียด ...


ฉันติดตามหัวข้อนี้โดยมีปัญหาคล้ายกับปัญหานี้ นี่คือคำสั่งของฉัน: "ng build --watch = true --baseHref = / dist / --outputPath = D: \ application_root \ dist --deployUrl = / dist /" สิ่งที่ฉันพยายามจะบอกคือเรียกใช้แอปจากโฟลเดอร์ application_root แต่รหัสทั้งหมดสำหรับส่วนหน้าจะอยู่ในโฟลเดอร์ย่อย "dist" ฉันต้องคัดลอก index.html จาก dist ไปยัง root ด้วยหรือไม่
Mark

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