Herokuへオリジナルアプリをデプロイする
自作のアプリを公開する際に、僕のような初学者はHerokuを重宝しています。
ただ、アプリの表示速度をあげる「アセットパイプライン」をHerokuで利用するための設定、方法が少し複雑だったので備忘録として残しておきます。
前提条件
Ruby 2.5.0
Rails 5.2.0
ローカルでプレコンパイルし、Herokuにアップしてみる
bundle exec rails assets:precompile RAILS_ENV=production
これでpublic/assets以下にプレコンパイルされたファイルができる。
このフォルダーが僕の環境ですと、.gitignoreに記述されていたのでHerokuにあげるために
記述を削除しておく
...略
/public/assets ←これ消す
.byebug_history
...略
でherokuにアップロードした。
## アップロード後の更新
先程作成したapp/public/assetsを見に行ってしまうので、app/assets/以下を変更しても反映されない。
一度作成したpublic/assetsを削除する。
bundle exec rails assets:clobber RAILS_ENV=production
で、もう一度プレコンパイルすればいいみたい。
動的プレコンパイル設定
解決方法を検索中に多かったのが、特に理由も明記されずにconfig/environment/production.rb中の
config.assets.compile = false
をtrueに書き換えるというもの。
重くなるらしいし、やめとけって書いてあるのもありました。
サーバ側でassets:precompileしたくない
正直まだわからない。そのうち頭良くなったら...
面倒な手順だし、調べてるときに自動的にコンパイルしてくれる方法を紹介しているものもありました。
まだ半分も理解できていない...
勉強続けて理解がすすんだら記事書き直していきます。
でもHerokuにgitからあげるときにコンパイルしたファイルが含まれない!ってときはこの記事読んで
基本的なことに気づいていただければ幸いです。