Rails 3有条件地包含Javascript文件

时间:2010-10-15 18:13:18

标签: javascript ruby-on-rails

我正在试图找出在轨道3中包含以下内容的最佳方法:

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

正如你所看到的,我只是想把这个javascript文件提供给IE ...所以也许我不应该这样做...我愿意接受建议。

我正在使用它来指定包含的默认javascript文件:

config.action_view.javascript_expansions [:defaults] =%w(jquery rails jquery-ui jquery.flot)

无论如何我只能在用户使用IE时才能在默认值中指定这个excanvas.js吗?

最好的方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:3)

最好的方法是你这样做,即:

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

有条件的评论,而不是服务器端的useragent抓取,是向IE /特定版本的IE提供额外的CSS / JS资产的最佳方式。某些代理服务器会修改User-agent标头,这意味着某些IE用户可能没有将excanvas文件插入:defaults扩展。像这样插入意味着所有IE用户都将被提供给文件,而不仅仅是那些用户代理与典型IE用户匹配的用户。