Rails3.1 with Compassをherokuにdeployする

Pocket

心機一転、Compassを利用してブログのデザインをリニューアルしたので、Compassのセットアップ方法と、herokuへのデプロイ時のメモを残しておきます。Compassのご紹介はまた次回に!

Compass Study
Compass Study / Calsidyrose

環境

Compass

Compassは現時点で最新のものを入れておきます。

Gemfileに追記

bundleしてから、次のコマンドでCompassの基本的なファイルを生成します。--syntax sassを指定しない場合はscssで生成されますが、Rails3.1系を使うなら迷いなくsassを使う方が良いでしょう。生成されるファイルの構成の理由についてはCompass Best Practicesを読むとそういうものなんだなぁと分かります。

Railsへのセットアップ

stylesheetsディレクトリはassets以下に移動しておきます。また、public/images以下に作られたgrid.pngもassets以下に移動しておきます。

application.html.erbのheadタグ内に次のコードを追加。

Hamlで書くなら以下のようにします。

heroku

何はともあれheroku_sanをいれておきましょう。

Gemfileに追記

bundleしてからConfigファイルを作成し、Heroku Appを作成します。

コマンドライン

Rails 3.1からはCedarスタックでアプリケーションを作成する必要があります。Bambooでも運用できないことはないのですが、Compassとの組み合わせだとかなり難しいので、せめてCompassを使う場合はCedarで作った方が無難です。

例:このブログのheroku.yml

コマンドライン

既にBambooスタックで運用しているアプリケーションをCedarに移行する場合、Heroku側で移行する仕組みは用意されていないため、DBを手動で移行する必要があります。(heroku db:pullとpushを使う等)

アプリケーションを作成してherokuにデプロイする前に、以下の作業をします。

必要なGemfileの追加

sqlite3がproductionでbundleされないようにする

config/environments/production.rbのconfig.assets.compileの値を以下の通り変更する

後はheroku_sanが上手いことデプロイしてくれます。

このブログは実際にRails3.1 + Compassの構成で作成しているので、このブログのソースコードを見て頂くのでも良いと思います。