为了避免在我的Rails 3.2网站上生成“资产未编译”错误,我将以下行添加到production.rb:
config.assets.precompile += ['*.js']
这会预编译供应商中的所有.js文件,以便在从页面内部调用时它们已准备就绪。不幸的是,其中一个.js文件无法预编译而没有错误,所以我想跳过它。除了一个文件bad-file.js
之外,我如何预编译所有.js文件?
答案 0 :(得分:1)
你可以在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”。您可以更准确地改进正则表达式,添加目录信息或其他内容。
答案 1 :(得分:0)
在您的production.rb文件中尝试添加此内容。
config.assets.precompile + =%w(bad-file.js)