この広告は、90日以上更新していないブログに表示しています。
Herokuなどにdeployするときは、事前に rake assets:precompile を行ってからdeployをする。
もしくは、ソース編集した後に bundle install してからdeployする。
Herokuにdeployしたら、「the page you were looking for doesn't exist.」と言う画面が出ました。
つまり404、表示するものが無いってことです。
ローカル(AWS cloud9)では、この現象が発生しません。
色々と検索すると、アセットパイプラインというのが影響しているのが解る。
railsguides.jp
アセットパイプラインの第一の機能はアセットを連結することです。これにより、ブラウザがWebページをレンダリングするためのリクエスト数を減らすことができます。Webブラウザが同時に処理できるリクエスト数には限りがあるため、同時リクエスト数を減らすことができればその分読み込みが高速になります。
要するに、jsとかcssが、一つのファイルにまとめられており、サーバーで動作するときは、プリコンパイルされたファイルを読むことなる。
Herokuはproduction設定としてあるので、この条件に合致する。
しかし、最初の勉強の時は、引っかからなかった、それはなぜか?
kawahara-ci.hatenablog.com
なるほど!第1章の時は、ソース編集後に、 bundle install をしている!
だから、はまらなかった訳です。
deployする前に、 bundle install をすれば、いいんじゃないと思ったけど、問題はアセットパイプラインがプリコンパイルされていないだけなので、rake assets:precompile するのが正しいです。

Ruby on Rails 5アプリケーションプログラミング

たった1日で基本が身に付く! Ruby on Rails 超入門

プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ)
引用をストックしました
引用するにはまずログインしてください
引用をストックできませんでした。再度お試しください
限定公開記事のため引用できません。