Qual è la differenza tra i parametri --base-href e --deploy-url dello strumento angular-cli


93

La documentazione di Angular informa che dovrei usare il --base-hrefparametro nella build dell'applicazione Angular per la produzione quando verrà distribuito in una sottocartella del server:

Se copi i file in una sottocartella del server, aggiungi il flag di build --base-hrefe imposta il file <base href>.

Ad esempio, se si index.htmltrova sul server in /my/app/index.html, imposta href di base in <base href="https://stackoverflow.com/my/app/">questo modo.

https://angular.io/guide/deployment

Tuttavia, l'angular-cli ha il --deploy-urlparametro. La documentazione dello strumento lo descrive come:

URL in cui verranno distribuiti i file.

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

Ho visto soluzioni che utilizzano l' --deploy-urlistante di --base-hrefquando l'applicazione verrà distribuita in una sottocartella del server.

La domanda

Qual è la differenza tra --base-hrefe i --deploy-urlparametri dello strumento angolare-cli? Quando dovrei usarli?

Risposte:



28

Per inserire i miei script nella cartella " / test / app1 / script / ", utilizzo questo comando :

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

Pertanto la mia app è accessibile su https://example.com/test/app1/ ma i miei script JS e CSS si trovano nella directory https://example.com/test/app1/script/ .


Questa è un'ottima risposta, ma tieni presente che può influire sul caricamento lento dei moduli. Ad esempio: { path: 'myModule', loadChildren: () => import( './myModule/my.module' ).then( m => m.MyModule ) }
Ken Hadden

11

Se desidero utilizzare / users come base applicativa per il router e / public come base per le mie risorse.

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

Vedi il blog di Shekhar Gulati per un esempio dettagliato ...


Sto seguendo questo thread con il mio simile a questo problema. Ecco il mio comando: "ng build --watch = true --baseHref = / dist / --outputPath = D: \ application_root \ dist --deployUrl = / dist /". Quello che sto cercando di dire è che esegui l'app dalla cartella application_root, ma tutto il codice per il front-end si trova nella sottocartella "dist". Inoltre devo copiare index.html da dist alla root?
Contrassegna il

2
è --base-href /users/e no --base-href /users. (barra mancante)
bvdb
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.