爲了避免「資產未編譯」,在生產上的錯誤我的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