mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Ruby on Rails 3.1 - Asset Pipeline プリコンパイルエラー!

[ サーバ構築, プログラミング ] [ Rails, Ruby ]

こんばんは。

昨日に引き続き、Ruby on Rails 3.0 系から 3.1 系へ移行すべく、各種テストをしていた時のことです。

Rails アプリを production モードで起動させようとすると、以下のような内部エラーが発生しました。 ※development モードや test モードでは以下のようなメッセージは出力されません。

1
ActionView::Template::Error (hoge.gif isn't precompiled):

hoge.gif がプリコンパイルされていない、と言っているようです。

調査してみたところ、Rails 3.1 から導入された Asset Pipeline という機能では production (公開)モードで公開する際、assets ディレクトリ内のファイルがプリコンパイルされていないといけないようです。 ※Asset Pipeline とは何か?はここでは説明しません。各自調べてください。

メモ

Rails アプリのディレクトリで以下のように実行するだけです。

1
# bundle exec rake assets:precompile RAILS_ENV=production

その他

上記のように予めプリコンパイルしておく方法のほかに、"config/application.rb" の “config.assets.compile” を true にする方法もあります。 実行時に逐次コンパイルする方法です。 しかし、この方法は逐次コンパイルするのでパフォーマンスが劣ります。


以上。

Comments