Railsエラーメッセージ・本番環境でアセットパイプライン問題

  • 2015/7/9
  • Railsエラーメッセージ・本番環境でアセットパイプライン問題 はコメントを受け付けていません。

本番環境でCSSファイルや画像ファイルなどを
更新して設置した時に、上手く表示できないと
いった問題が度々起こります。

 
開発環境ではエラーが起こっていないのに
本番環境では

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

などのエラーメッセージが表示されてしまう。
なぜ・・・。

 
アセットパイプライン(Assets Pipeline)という仕組みが
本番環境/Productionモードでは備わっているからです。

本番環境でのエラーメッセージを吐き出すlogは
cat log/production.log
で確認。すると、こんなエラーメッセージが出力。
 

F, [2015-06-22T18:57:35.574169 #10294] FATAL -- :  
ActionController::RoutingError (No route matches [GET] "/javascripts/application.js"): 
  actionpack (4.0.5) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call' 
  actionpack (4.0.5) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call' 
  railties (4.0.5) lib/rails/rack/logger.rb:38:in `call_app' 
  railties (4.0.5) lib/rails/rack/logger.rb:20:in `block in call' 
  activesupport (4.0.5) lib/active_support/tagged_logging.rb:68:in `block in tagged' 
  activesupport (4.0.5) lib/active_support/tagged_logging.rb:26:in `tagged' 
  activesupport (4.0.5) lib/active_support/tagged_logging.rb:68:in `tagged' 
  railties (4.0.5) lib/rails/rack/logger.rb:20:in `call' 
  actionpack (4.0.5) lib/action_dispatch/middleware/request_id.rb:21:in `call' 
  rack (1.5.5) lib/rack/methodoverride.rb:21:in `call' 
  rack (1.5.5) lib/rack/runtime.rb:17:in `call' 
  activesupport (4.0.5) lib/active_support/cache/strategy/local_cache.rb:83:in `call' 
  rack (1.5.5) lib/rack/sendfile.rb:112:in `call' 
  railties (4.0.5) lib/rails/engine.rb:511:in `call' 
  railties (4.0.5) lib/rails/application.rb:97:in `call' 
  passenger (5.0.10) lib/phusion_passenger/rack/thread_handler_extension.rb:94:in `process_request' 
  passenger (5.0.10) lib/phusion_passenger/request_handler/thread_handler.rb:149:in `accept_and_process_next_request' 
  passenger (5.0.10) lib/phusion_passenger/request_handler/thread_handler.rb:110:in `main_loop' 
  passenger (5.0.10) lib/phusion_passenger/request_handler.rb:414:in `block (3 levels) in start_threads' 
  passenger (5.0.10) lib/phusion_passenger/utils.rb:111:in `block in create_thread_and_abort_on_exception' 

これを私が解決させた方法は、

1.Productionモードへのmigrate
$ rake db:migrate RAILS_ENV=production

2.プリコンパイル
$ bundle exec rake assets:precompile RAILS_ENV=production

3.VPSサーバの再起動
$ sudo service httpd restart

 
この上記3つのコマンドにて無事解決。
本番環境で何かファイルを更新する度に
こちらのコマンドを発行する必要がございます。


※解決策を求めてやってきた方へ
ここで質問することができますよ。早速登録してみることをお勧めします。
バグで困ったときは【teratail】に相談!

  • このエントリーをはてなブックマークに追加

関連記事

コメントは利用できません。

ピックアップ記事

  1. 第3回目ではボタンを押すとyoutubeの動画がランダム表示されるものを作成しました。今度はランダム…
  2. ワードプレスでオリジナルテーマを作ってみたい! 全くのイチからの作成手順をご紹介していきたいと思い…

ピックアップ記事

  1. 独学でプログラミング学習に挑戦したは良いが、結局挫折を繰り返す日々。   そんな挫折経験者や…
  2. ネットで調べると実に様々な方法が出てきます。 サーバーによっても様々なアプローチが。 今回私…
  3. 1.さくらVPSにPHP、MySQL、Ruby on Railsを設置。 これらを設置するまで…
  4. 他人様のコンテンツを引っ張ってきて、 自分なりにアレンジを加えた形で 独自のコンテンツとして提供…
ページ上部へ戻る