2010-10-15 8 views
3

J'essaie de trouver la meilleure façon d'inclure les éléments suivants dans ma tête dans des rails 3:Rails 3 Inclusion conditionnelle des fichiers Javascript

<!--[if IE]><script language="javascript" type="text/javascript" src="/javascripts/excanvas.min.js"></script><![endif]--> 

Comme vous pouvez le voir, je veux juste que fichier javascript availabe à IE ... alors peut-être que je ne devrais pas le faire de cette façon ... Je suis ouvert aux suggestions.

J'utilise cette option pour spécifier la valeur par défaut javascript fichiers pour l'inclusion:

config.action_view.javascript_expansions [: par défaut] =% w (rails jquery jquery.flot jquery-ui)

est-il de toute façon je peux spécifier cette excanvas.js dans les valeurs par défaut seulement si l'utilisateur utilise IE?

Quelle est la meilleure façon de le faire?

Merci!

Répondre

3

La meilleure façon est la façon dont vous le faites, à savoir:

<%= javascript_include_tag :defaults %> 
<!--[if IE]><%= javascript_include_tag "excanvas.min" %><![endif]--> 

commentaires conditionnels plutôt que de racler Serverside de useragent, sont la meilleure façon de s'y prendre pour servir les actifs CSS/JS supplémentaires pour IE/versions spécifiques d'IE. Certains serveurs proxy modifient l'en-tête de l'agent utilisateur, ce qui signifie que certains fichiers IE excanvas peuvent ne pas être insérés dans l'extension :defaults. En l'insérant comme cela, tous les utilisateurs d'IE recevront le fichier, pas seulement ceux où l'agent utilisateur correspond à un useragent IE typique.

+0

Génial, merci pour l'explication Thomas. À votre santé! – TylerM

Questions connexes