diff options
Diffstat (limited to 'lib/tasks/assets.rake')
-rw-r--r-- | lib/tasks/assets.rake | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/tasks/assets.rake b/lib/tasks/assets.rake index aca2a318b31..33a0ad26d0e 100644 --- a/lib/tasks/assets.rake +++ b/lib/tasks/assets.rake @@ -3,8 +3,27 @@ namespace :assets do task :precompile do css_files = Dir['public/assets/*.css'] css_files.each do | file | + # replace url(/assets/*) with url(./*) puts "Fixing #{file}" system "sed", "-i", "-e", 's/url(\([\"\']\?\)\/assets\//url(\1.\//g', file + + # rewrite the corresponding gzip file (if it exists) + gzip = "#{file}.gz" + if File.exist?(gzip) + puts "Fixing #{gzip}" + + FileUtils.rm(gzip) + mtime = File.stat(file).mtime + + File.open(gzip, 'wb+') do |f| + gz = Zlib::GzipWriter.new(f, Zlib::BEST_COMPRESSION) + gz.mtime = mtime + gz.write IO.binread(file) + gz.close + + File.utime(mtime, mtime, f.path) + end + end end end end |