Sooey

2011-09-20 17:55:32 +0900

Rails 3.1.0でrake assets:precompileするとプリコンパイルに失敗してしまうバグの話。

Rails 3.1.0でAsset Pipelineを使っている場合にrakeのassets:precompileタスクを実行すると、

$ RAILS_ENV=production bundle exec rake assets:precompile
rake aborted!
foo.png isn't precompiled
  (in /Users/juno/src/rails-app/app/assets/stylesheets/common.scss)

Tasks: TOP => assets:precompile
(See full trace by running task with --trace)

という感じで、なんでもない画像ファイルのプリコンパイル(public/assetsへのコピー)でエラーが発生するケースに遭遇しました。

どうやらプリコンパイル時にconfig.assets.compileの値がfalseだと発生するようで、Upgrade to Rails 3.1.0 from rc6, asset precompile fails - Stack OverflowによるとRails 3.1.0のバグということです。

リポジトリのコードでは既に修正済みのようなので、とりあえずプリコンパイルをする時だけconfig/environments/production.rbconfig.assets.compiletrueにすることで対処しておくことにしました。