Я использую jammit в приложении Rails 3.0.7, в Heroku
gem "jammit", :git => "git://github.com/documentcloud/jammit.git"
У меня есть это в файле rake, чтобы упаковать ресурсы перед тем, как я фиксирую / развертываю
desc 'jammit'
task :jam => :environment do
require 'jammit'
Jammit.package!
end
И это в .git / hooks / pre-commit, так что это делается автоматически
echo "jamming it"
rake jam
git add public/assets/*
git add public/javascripts/*
По умолчанию время истечения в Heroku составляло всего 12 часов, чтобы увеличить его (потому что у меня есть схема очистки кэша, в которой я уверен), я поместил это в config / initializers / heroku.rb
module Heroku
class StaticAssetsMiddleware
def cache_static_asset(reply)
return reply unless can_cache?(reply)
status, headers, response = reply
headers["Expires"] = CGI.rfc1123_date(11.months.from_now)
build_new_reply(status, headers, response)
end
end
end
Чтобы уменьшить нагрузку на мой сервер Heroku Rails, я также использую бесплатную учетную запись на CloudFlare , которая обеспечивает легкий обратный прокси / cdn с некоторыми приличными функциями аналитики и безопасности.
Когда я займусь кэшированием общего контента, эта штука действительно будет кричать!