きたくち

はい。

Rails3.1でつくったアプリがherokuだとエラーを吐いて動かない

アプリを作ってherokuにあげるぞーと思ったらエラーを吐かれてハマってしまったのでまとめ。

普通にgitへコミット→herokuへdeployしたのにherokuで開くと以下のようなエラーが。

We're sorry, but something went wrong.
We've been notified about this issue and we'll take a look at it shortly.

でもローカルで動かしているときは問題なく動いてる。

じゃあローカルのほうでもproduction環境で動かしてみよう!

$ rails s -e production

すると今度はエラーを吐いた。

application.css isn't precompiled

はい。
解決方法は以下のエントリを参照。
プリコンパイル済みのアセットを作成する - 祈れ、そして働け 〜 Ora et labora
どうやらRails3.1が原因みたいで。

$ bundle exec rake assets:precompile RAILS_ENV=production
$ vi いじっているrailsのルート/config/environments/production.rb

  # Don't fallback to assets pipeline if a precompiled asset is missed
  config.assets.compile = true

エラーきえた!!

herokuにdeployしなおしたら無事に動きました。めでたしめでたし。

追記(20111019)

CSSを記述するのは今まで通り app/assets/stylesheets/application.css で問題ないみたい。
ただ、production環境で動かす際には一度プリコンパイルさせる必要があります。

$ rake assets:precompile