Rails3.0.7アプリのHerokuでjammitを使用しています
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を提供します。
一般的なコンテンツのキャッシュに取り掛かると、これは本当に悲鳴を上げるでしょう!