2016-02-18 1 views
3

Après avoir terminé et testé une application Angular2 sur ma machine locale, j'ai décidé de déplacer . à un serveur cloud AWS avec Apache je cloné le sw de git mais, dès que je lançais l'application, je suis une erreur sur la console du navigateur indiquant:Erreur Angular2 après le déploiement sur le serveur AWS "" Seuls les éléments vides et étrangers peuvent être auto-fermés "head" ("[ERROR ->] <head/>"

EXCEPTION: Template parse errors: 
Only void and foreign elements can be self closed "head" ("[ERROR ->]<head/> 

Après quelques recherches, je trouve que tous les de mes modèles html externes sont magiquement enrichis avec un tag de démarrage <head/> dont je ne vois pas trace dans mon code Pour résoudre ce problème, j'ai dû éteindre mod-pagespeed. Puisque je ne suis pas familier avec la configuration d'Apache je ne sais pas quels effets secondaires cela peut avoir et s'il y a une meilleure solution. Toute aide sera la bienvenue.

+0

Il n'a pas à faire quelque chose avec apache, et aussi pas pour le ''. Vous ne pouvez pas utiliser les balises auto-fermées dans les modèles angular2, les détails sont [ici] (https://stackoverflow.com/questions/34692928/exception-template-parse-errors-only-void-and-foreign-elements- can-être-auto-clo/39034132 # 39034132). – peterh

Répondre

0

Je crois que mod-pagespeed a une option où il ajoute automatiquement une balise head à un document html s'il ne peut pas le trouver dans le document (avant le corps). Pour désactiver cette fonction ajouter à votre configuration pagespeed apache (dans le .htaccess.):

Pour éviter javascript modifications interdisent également deux autres filtres

ModPagespeedForbidFilters add_head,rewrite_javascript,rewrite_javascript_inline,combine_javascript,inline_javascript 

De cette façon, vous pouvez toujours profiter du reste de les caractéristiques mod-pagespeed :)

+0

J'ai activé mod-pagespeed et appliqué le filtre selon votre suggestion. Maintenant, les choses fonctionnent beaucoup mieux mais je vois encore un comportement étrange: sur Safari (Mac) la console affiche une erreur indiquant 'ReferenceError: Impossible de trouver la variable: vitesse de la page' à angular2-polyfills.js 177; sur Chrome une erreur différente 'Uncaught ReferenceError: la vitesse de la page n'est pas définie à VM2699 14: 1; sur Firefox, tout fonctionne. Avez-vous une idée des causes possibles? Merci d'avance – Picci

+0

@Picci J'ai édité ma réponse. Vous pouvez essayer de désactiver tous ces filtres en premier et revenir en arrière pour voir lequel en est la cause. Si cela ne fonctionne pas, pourriez-vous fournir un lien pour savoir où il est hébergé? – PierreDuc