Skip to content

Instantly share code, notes, and snippets.

@dtuite
Last active September 14, 2015 21:30
Show Gist options
  • Save dtuite/9fc8c1837837dbd11d0d to your computer and use it in GitHub Desktop.
Save dtuite/9fc8c1837837dbd11d0d to your computer and use it in GitHub Desktop.
Gzip assets when deploying with capistrano and Rails 4.2

Gzip assets when deploying with capistrano and Rails 4.2

# lib/tasks/assets.rake
namespace :assets do
task :gzip do
require 'zlib'
Dir['public/assets/**/*.{js,css}'].each do |path|
gz_path = "#{path}.gz"
next if File.exist?(gz_path)
Zlib::GzipWriter.open(gz_path) do |gz|
gz.mtime = File.mtime(path)
gz.orig_name = path
gz.write(IO.binread(path))
end
end
end
end
# lib/capistrano/tasks/assets.rake
namespace :deploy do
namespace :assets do
task :gzip do
on roles(:web) do
within release_path do
execute :bundle, 'exec rake assets:gzip RAILS_ENV=production'
end
end
end
end
end
# config/deploy.rb
after 'deploy:assets:precompile', 'deploy:assets:gzip'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment