118 votes

Quelle est la différence entre les paramètres --base-href et --deploy-url de l'outil angular-cli ?

La documentation d'Angular informe qu'il faut utiliser le paramètre --base-href lors de la construction de l'application Angular pour la production lorsqu'elle va être déployée dans un sous-dossier:

Si vous copiez les fichiers dans un sous-dossier du serveur, ajoutez le drapeau de construction, --base-href et configurez le correctement.

Par exemple, si le fichier index.html est sur le serveur à /mon/app/index.html, configurez le base href en de cette manière.

https://angular.io/guide/deployment

Cependant, l'angular-cli a le paramètre --deploy-url. La documentation de l'outil le décrit comme suit:

URL où les fichiers seront déployés.

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

J'ai vu des solutions qui utilisent le paramètre --deploy-url plutôt que --base-href lorsque l'application va être déployée dans un sous-dossier.

La question

Quelle est la différence entre les paramètres --base-href et --deploy-url de l'outil angular-cli? Quand devrais-je utiliser chacun?

113voto

Mac_W Points 358
  • Base-href est utilisé par le routage
  • deploy-url est pour les ressources.

Dans la plupart des cas, base-href est suffisant.

Veuillez consulter ces publications :

35voto

Bill Zelenko Points 71

Pour mettre mes scripts dans le dossier "/test/app1/script/", j'utilise cette commande :

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

Ainsi, mon application est accessible à https://example.com/test/app1/ mais mes scripts JS et CSS se trouvent dans le répertoire https://example.com/test/app1/script/.

0 votes

C'est une excellente réponse, mais attention car cela peut affecter le chargement paresseux des modules. Par exemple: { path: 'myModule', loadChildren: () => import( './myModule/my.module' ).then( m => m.MyModule ) }

17voto

Mo-Gang Points 58

Si je veux utiliser /utilisateurs comme base de mon application pour le routeur et /public comme base pour mes ressources.

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

Consultez le blog de Shekhar Gulati pour un exemple détaillé...

1 votes

Je suis en train de suivre ce fil de discussion avec mon problème similaire. Voici ma commande : "ng build --watch=true --baseHref=/dist/ --outputPath=D:\application_root\dist --deployUrl=/dist/". Ce que j'essaie de dire, c'est que je lance l'application à partir du dossier application_root, mais tout le code pour l'interface est situé dans le sous-dossier "dist". Est-ce que je dois aussi copier index.html de dist vers la racine ?

3 votes

C'est --base-href /utilisateurs/ et non --base-href /utilisateurs. (slash manquant)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X