为了避免“资产未编译”,在生产上的错误我的Rails 3.2的网站,我添加以下行production.rb:如何预编译除一个以外的所有Javascript文件?
config.assets.precompile += ['*.js']
此预编译的供应商的所有.js文件,所以如果他们准备好了当从页面内部调用时。不幸的是.js文件之一无法预编译没有错误,所以我想跳过它。如何预编译除一个文件以外的所有.js文件,bad-file.js
?
为了避免“资产未编译”,在生产上的错误我的Rails 3.2的网站,我添加以下行production.rb:如何预编译除一个以外的所有Javascript文件?
config.assets.precompile += ['*.js']
此预编译的供应商的所有.js文件,所以如果他们准备好了当从页面内部调用时。不幸的是.js文件之一无法预编译没有错误,所以我想跳过它。如何预编译除一个文件以外的所有.js文件,bad-file.js
?
你可能不喜欢这样的application.rb中
config.assets.precompile << Proc.new do |path|
if path =~ /\.(css|js)\z/ && path!~ /bad-file\.js\z/
full_path = Rails.application.assets.resolve(path).to_path
app_assets_path = Rails.root.join('app', 'assets').to_path
if full_path.starts_with? app_assets_path
puts "including asset: " + full_path
true
else
puts "excluding asset: " + full_path
false
end
else
false
end
end
你也可以做一个简单的方法,我测试了一下,名字不一样。
config.assets.precompile = [/^((?!bad-file\.js).)*$/]
这意味着文件路径不应该包含子字符串“bad-file.js”。您可以更准确地改进正则表达式,添加目录信息或其他内容。
在您的production.rb文件中,尝试添加此项。
config.assets.precompile + =%w(bad-file.js)
有没有办法用少代码做到这一点?我只有一行,直到现在... –
我更新了。也许它可以为你工作。 – lalameat