Apa perbedaan antara --base-href dan --deploy-url parameter alat angular-cli

93

Dokumentasi Angular menginformasikan bahwa saya harus menggunakan --base-hrefparameter dalam aplikasi Angular yang dibangun untuk produksi ketika akan digunakan di subfolder server:

Jika Anda menyalin file ke sub-folder server, tambahkan flag build, --base-hrefdan setel dengan <base href>tepat.

Misalnya, jika index.htmlada di server di /my/app/index.html, setel href dasar menjadi <base href="https://stackoverflow.com/my/app/">seperti ini.

https://angular.io/guide/deployment

Namun, angular-cli memiliki --deploy-urlparameter. Dokumentasi alat menggambarkannya sebagai:

URL tempat file akan disebarkan.

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

Saya telah melihat solusi yang menggunakan --deploy-urlinsted --base-hrefketika aplikasi akan ditempatkan di subfolder dari server.

Pertanyaan

Apa perbedaan antara --base-hrefdan --deploy-urlparameter alat angular-cli? Kapan saya harus menggunakan masing-masing?

Rodrigo
sumber

Jawaban:

28

Untuk meletakkan skrip saya di dalam folder " / test / app1 / script / ", saya menggunakan perintah ini :

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

Jadi aplikasi saya dapat diakses di https://example.com/test/app1/ tetapi skrip JS dan CSS saya ada di direktori https://example.com/test/app1/script/ .

Bill Zelenko
sumber
Ini adalah jawaban yang bagus, tetapi berhati-hatilah karena ini dapat memengaruhi pemuatan modul secara lambat. Misalnya: { path: 'myModule', loadChildren: () => import( './myModule/my.module' ).then( m => m.MyModule ) }
Ken Hadden
11

Jika saya ingin menggunakan / users sebagai basis aplikasi saya untuk router dan / publik sebagai basis untuk aset saya.

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

Lihat blog Shekhar Gulati untuk contoh rinci ...

Godfrey
sumber
Saya mengikuti utas ini dengan masalah saya yang serupa dengan ini. Ini perintah saya: "ng build --watch = true --baseHref = / dist / --outputPath = D: \ application_root \ dist --deployUrl = / dist /". Apa yang ingin saya katakan adalah menjalankan aplikasi dari folder application_root, tetapi semua kode untuk front-end terletak di sub folder "dist". Juga apakah saya harus menyalin index.html dari dist ke root?
Tandai
2
itu --base-href /users/dan tidak --base-href /users. (garis miring hilang)
bvdb