diff --git a/config/deploy.rb b/config/deploy.rb index 2b141766..e6339af2 100644 --- a/config/deploy.rb +++ b/config/deploy.rb @@ -55,9 +55,10 @@ namespace :deploy do after :restart, :clear_cache do on roles(:web), in: :groups, limit: 3, wait: 10 do # Here we can do anything such as: - # within release_path do - # execute :rake, 'cache:clear' - # end + within release_path do + #execute :rake, 'cache:clear', as: 'www-data' + execute :rake, 'dedigest_assets', as: 'www-data' + end end end diff --git a/lib/capistrano/tasks/dedigest_assets.rake b/lib/capistrano/tasks/dedigest_assets.rake new file mode 100644 index 00000000..d9f4e335 --- /dev/null +++ b/lib/capistrano/tasks/dedigest_assets.rake @@ -0,0 +1,8 @@ +task dedigest_assets: :environment do + extensions = %w[jpg png js css gif] + Dir.glob(Rails.root.join('public/assets/**', "*.{#{extensions.join(',')}}")).each do |asset_path| + next unless asset_path =~ /-[a-f0-9]{32}\.(#{extensions.join('|')})\Z/ + dedigest_path = asset_path.sub(/-[a-f0-9]{32}/, '') + `cp '#{asset_path}' '#{dedigest_path}' 2>/dev/null` + end +end