Precomstackción de activos de Rails 3.1: incluye todos los archivos javascript

Quiero que Rails 3.1 recoja más de mis activos para la precomstackción. En particular, el matcher predeterminado para comstackr archivos no agrega archivos .js desde el vendor/assets/javascripts . Solo puedo agregar los activos a la lista config.assets.precompile , pero esto parece molesto. No quiero referirme a ellos en el manifiesto de application.js , porque no los quiero incluidos en todas las páginas.

En resumen, ¿hay alguna manera de solicitar que todos los archivos .js encontrados en el vendor/assets/javascripts precomstackdos por los rake assets:precompile , pero sin tenerlos incluidos en todas las páginas?

config.assets.precompile acepta expresiones regulares y coincidencias de comodines, por lo que para asegurar que todos los archivos js se comstackn, sin especificar cada uno por su nombre, algo así debería ser el truco:

 config.assets.precompile << '*.js' 

Modifiqué el ejemplo dado en la configuración config.assets.precompile de Rails para procesar todos los archivos CSS y JS en aplicaciones / activos y aquí está mi versión, que toma todos los activos de / app y / vendor excepto parciales (empezando desde _)

 config.assets.precompile << Proc.new { |path| if path =~ /\.(css|js)\z/ full_path = Rails.application.assets.resolve(path).to_path app_assets_path = Rails.root.join('app', 'assets').to_path vendor_assets_path = Rails.root.join('vendor', 'assets').to_path if ((full_path.starts_with? app_assets_path) || (full_path.starts_with? vendor_assets_path)) && (!path.starts_with? '_') puts "\t" + full_path.slice(Rails.root.to_path.size..-1) true else false end else false end } 
 # Precompile *all* assets, except those that start with underscore config.assets.precompile << /(^[^_\/]|\/[^_])[^\/]*$/ 

Consulte el Blog de 55 minutos para obtener la explicación completa.

Esto precomstackrá cualquier activo, no solo JavaScript (.js, .coffee, .swf, .css, .scss)