供应商/资产/ javascript中的Rails 3.2资产管道+ html5shiv.JS

Gui*_*ini 5 html5 ruby-on-rails-3 asset-pipeline html5shiv

在阅读了这篇文章(推荐阅读)关于不使用HTML5Shiv直接从源代码(几乎)每个人都这样做之后,我试图在我的应用程序中使用Rails 3.2 Asset Pipeline包含html5shiv.js.

我下载了javascript的缩小版和非缩小版.该约定告诉您将第三方文件添加到vendors/assets文件夹中.我现在有两个问题:

1)我应该将哪个版本(缩小或未缩小)添加到vendors/assets/javascrip文件夹中?

2)因为它是条件参考<!--[if lt IE 9]>,我应该如何调用脚本?

我不想将它添加到application.js清单中,因为我想将它保存为单独的文件,我想使用该条件.我有点迷路了!

任何帮助将非常感激.

谢谢

Bla*_*son 8

如果您愿意,可以使用JS的未分化版本,Rails将通过管道在生产模式下压缩它.

要将shiv作为单独的文件保存,您可以通过html5.js/vendor/assets/javascripts/目录中创建(或其他)来为其提供自己的清单.在该文件中需要html5shiv(我假设清单和脚本在同一个目录中).

//= require html5shiv
Run Code Online (Sandbox Code Playgroud)

要么

//= require html5shiv.min
Run Code Online (Sandbox Code Playgroud)

然后在条件块中的布局中包含清单.在HAML中,例如:

== "<!--[if lt IE 9]>"
= javascript_include_tag 'html5'
== "<![endif]-->"
Run Code Online (Sandbox Code Playgroud)

请记住在测试之前重新启动应用服务器.

  • 为什么不使用haml语法来条件`/ [if lte IE7]`...? (2认同)