今まで使おう使おうと思いつつ、さほどPVがあるサイトの運営をする機会がなかったため、 やってなかったcloudfrontを満を持して設定してみました。 (とりあえず入れとけ的な話もよく聞きますし…) 今回は、railsのassetsをS3に置いて、cloudfrontから配信するようにしました。 結果、噂通りすごく簡単に導入できたのですが、調査に割りと時間がかかったのでメモしておきます。 Herokuのドキュメントを取っ掛かりにしました。 概要は以下です。 assets格納用のS3バケットを作る cloudfrontのdistributionを作成し、S3をorigin serverに設定 railsプロジェクトに設定追加 Gemfileに、gem "asset_sync" を追加 config/initializersに、asset_sync.rb を作成 (カスタム設定の場合) con
サーバ間に差異があると意図どおりに動かない可能性があるのでおすすめできない(追記2参照) capistranoのでデプロイをするとdeploy:assets:precompileを走らせてassetsのコンパイルをしてくれるけど、毎回assetsに変更があるわけではない。なので変更がない場合にはprecompileを行わないように手を加える。 config/deploy/assets.rb: namespace :deploy do namespace :assets do desc <<-DESC Run the asset precompilation rake task. You can specify the full path \ to the rake executable by setting the rake variable. You can also \ specify
前に設定云々でハマった事があったのでメモ。 高速化のソースコードについては下記。 http://stackoverflow.com/questions/9016002/speed-up-assetsprecompile-with-rails-3-1-3-2-capistrano-deployment config/deproy.rb内に下記を追加 namespace :deploy do namespace :assets do task :precompile, :roles => :web, :except => { :no_release => true } do from = source.next_revision(current_revision) if capture("cd #{latest_release} && #{source.local.log(from)} ven
load 'deploy' # Uncomment if you are using Rails' assets pipeline # load 'deploy/assets' このコメントアウトを外すだけ。外すと、 deploy:update_codeのあとにdeploy:assets:precompileというタスクを実行し、precompileする public/assetsへのシンボリックリンクをshared/assetsに作る なんでコメントアウトしたし… 追記 投稿したあとに同じような投稿を見つけてしまった。そちらではバグみたいなことを報告されてた。 一応、環境も追記しておきます。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く