使用Modernizr.load在Rails 3.2中加载资源

时间:2013-02-18 21:23:11

标签: javascript ruby-on-rails-3

我希望能够使用Modernizr.load加载某些JS文件 -

 Modernizr.load({
  test : Modernizr.touch,
  yep  : '/assets/mobile.js',
  nope : '/assets/desktop.js',
});

但是当为生产编译时,这些路径不再存在。如何以这种方式整理装载?

1 个答案:

答案 0 :(得分:2)

您需要将这些资产添加到环境配置文件中的config.assets.precompile(在config / environments / production.rb中找到)。这是一个例子:

config.assets.precompile += %w(mobile.js desktop.js)

Modernizr可以引用这些资产:

Modernizr.load({
  test : Modernizr.touch,
  yep  : '/assets/mobile.js',
  nope : '/assets/desktop.js',
});

编辑:您还应确保application.js清单中包含 NOT 这些资产。将它们包含在application.js中会破坏为特定功能的浏览器有条件地加载它们的目的。