我希望能够使用 Modernizr.load 加载某些 JS 文件——
Modernizr.load({
test : Modernizr.touch,
yep : '/assets/mobile.js',
nope : '/assets/desktop.js',
});
但是当它被编译用于生产时,这些路径不再存在。我怎样才能以这种方式整理加载?
我希望能够使用 Modernizr.load 加载某些 JS 文件——
Modernizr.load({
test : Modernizr.touch,
yep : '/assets/mobile.js',
nope : '/assets/desktop.js',
});
但是当它被编译用于生产时,这些路径不再存在。我怎样才能以这种方式整理加载?
您需要将这些资产添加到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 清单中。将它们包含在 application.js 中会破坏为特定的无功能浏览器有条件地加载它们的目的。