2017-05-15 2 views
3

Symptômelancers francs angulaire 404 pour * .bundle.js fichiers lors de l'utilisation d'une URL de base html5 personnalisée

Après la mise à niveau mon application Angular2 à angulaire ^4.1.2 et aussi la bêta angulaire CLI à ^1.0.3, je suis un 404 non trouvé pour mes fichiers * .bundle.js lors de l'exécution de l'application avec ng serve. Notez que ce symptôme ne s'est pas produit dans Angular2 et Angular CLI beta.

Configuration

Ce problème existe seulement quand je définir l'URL de base html5 à une URL personnalisée dans index.html, par exemple <base href="/some-path/">. (Autrement dit, si je l'ai mis à <base href="/">, les fichiers *.bundle.js se trouvent et mes œuvres app)

enquête

Le symptôme se produit dans les circonstances décrites, car les fichiers sont servis au niveau de la racine par cli angulaire , peu importe l'URL de base html5. Donc, la vraie question est: Comment puis-je dire à CLI Angular de servir les fichiers * .bundle.js sur l'URL de base spécifiée OU dire angulaire de ramasser les fichiers à la racine? J'ai trouvé un issue request qui semble traiter exactement ce problème. Par conséquent, il existe une option --base-href pour les commandes ng serve et ng build.

J'ai essayé d'utiliser ces options isolées ainsi que combiné:

  • ng serve --base-href /assessment/
  • ng serve --base-href /assessment/ --deploy-url /assessment/

Cependant, le symptôme est resté.

Répondre

0

Cela a fonctionné pour moi:

  • ne pas ajouter un itinéraire personnalisé sur index.html et développer localement sur /
  • utilisation ng build --base-href /assessment/ pour la construction de l'application angulaire. Cela va créer l'itinéraire dans le fichier dist et donc travailler dans prod.
0

J'ai eu le même problème et en cherchant un moment sur StackOverflow et Github, je trouve une solution qui fonctionne pour moi. Essayez ceci: $ng serve --base-href '/assessment/' --deploy-url '/' cela fonctionne sur mon projet.