Movatterモバイル変換


[0]ホーム

URL:


人生100年!生涯エンジニア人生!

楽しいエンジニア人生!

トップ>rudy>Ruby on Railsの勉強 少々はまる

この広告は、90日以上更新していないブログに表示しています。

Ruby on Railsの勉強 少々はまる

この記事をはてなブックマークに追加

結論

Herokuなどにdeployするときは、事前に rake assets:precompile を行ってからdeployをする。
もしくは、ソース編集した後に bundle install してからdeployする。

何が起きたか?

Herokuにdeployしたら、「the page you were looking for doesn't exist.」と言う画面が出ました。
f:id:hideaki_kawahara:20180528000849p:plain
つまり404、表示するものが無いってことです。
ローカル(AWS cloud9)では、この現象が発生しません。

アセットパイプライン

色々と検索すると、アセットパイプラインというのが影響しているのが解る。
railsguides.jp

アセットパイプラインの第一の機能はアセットを連結することです。これにより、ブラウザがWebページをレンダリングするためのリクエスト数を減らすことができます。Webブラウザが同時に処理できるリクエスト数には限りがあるため、同時リクエスト数を減らすことができればその分読み込みが高速になります。

要するに、jsとかcssが、一つのファイルにまとめられており、サーバーで動作するときは、プリコンパイルされたファイルを読むことなる。
Herokuはproduction設定としてあるので、この条件に合致する。
しかし、最初の勉強の時は、引っかからなかった、それはなぜか?
kawahara-ci.hatenablog.com

手順を振り返る

第1章の時は、以下の順番で作業をしています。

  1. gemファイル編集
  2. bundle install
  3. rails server
  4. ソース編集
  5. gemファイル再編集
  6. bundle install --without production
  7. Herokuにdeploy

はまった時は、以下の順番で作業をしています。

  1. gemファイル編集
  2. bundle install --without production
  3. ソース編集
  4. Herokuにdeploy

なるほど!第1章の時は、ソース編集後に、 bundle install をしている!
だから、はまらなかった訳です。
deployする前に、 bundle install をすれば、いいんじゃないと思ったけど、問題はアセットパイプラインがプリコンパイルされていないだけなので、rake assets:precompile するのが正しいです。

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

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

検索
注目記事

「人生100年!生涯エンジニア人生!」は、amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、 Amazonアソシエイト・プログラムの参加者です。

引用をストックしました

引用するにはまずログインしてください

引用をストックできませんでした。再度お試しください

限定公開記事のため引用できません。

読者です読者をやめる読者になる読者になる

[8]ページ先頭

©2009-2025 Movatter.jp