Если вам нужен исходный код задачи rake для precompile, вы можете найти его здесь:
https://github.com/rails/rails/blob/3-1-stable/actionpack/lib/sprockets/assets.rake
Не ожидайте, что он будет работать как естькогда вы копируете его в ваши lib / tasks в вашем приложении rails 2.3.14 с гемами sprockets и sprockets-helpers.
[update]
Я сделал простую задачу rake для прекомпилятора для использования врельсы 2.3.14 (без какого-либо сжатия JavaScript).Возможно, вы захотите изменить некоторые вещи, в зависимости от вашей конфигурации.Тщательно протестируйте задачу очистки, поскольку она использует команду rm_rf; -)
BUILD_DIR = Rails.root.join("public/assets")
DIGEST = true
namespace :assets do
task :compile => :cleanup do
sprockets = Sprockets::Environment.new
sprockets.append_path 'app/assets/images'
sprockets.append_path 'app/assets/javascripts'
sprockets.append_path 'app/assets/stylesheets'
sprockets.each_logical_path do |logical_path|
if asset = sprockets.find_asset(logical_path)
target_filename = DIGEST ? asset.digest_path : asset.logical_path
prefix, basename = asset.pathname.to_s.split('/')[-2..-1]
FileUtils.mkpath BUILD_DIR.join(prefix)
filename = BUILD_DIR.join(target_filename)
puts "write asset: #{filename}"
asset.write_to(filename)
#asset.write_to("#{filename}.gz") if filename.to_s =~ /\.(css|js)$/
end
end
end
# Cleanup asset directory
task :cleanup do
dirs = Dir.glob(File.join(BUILD_DIR.join("{*}")))
dirs.each do |dir|
puts "removing: #{dir}"
FileUtils.rm_rf dir
end
end
end
[update # 2]
Сейчас я использую этот подход, и он отлично работает: http://jaredonline.github.io/blog/2012/05/16/sprockets-2-with-rails-2-dot-3/