Ruby on Railsで簡単な掲示板アプリを作成し、初めてherokuのデプロイに成功した。
ただ、herokuでsqliteが未対応なことを知らなかったり、フロント周りをslimで初実装した為に、デプロイ前後で少々エラーに苦しんだので、備忘録として解決方法を残す。
sqliteでherokuデプロイ失敗した時の対処法
恐らくrailsでwebアプリを作成した際、デフォルトではsqliteがDBとして設定されていると思う。
そのままデプロイしようとすると失敗するので、
※エラー参考記事1、エラー参考記事2、 herokuデプロイの手順
以下を削除
gem 'sqlite3'
以下を追記
group :development, :test do
gem 'sqlite3'
end
group :production do
gem 'rails_12factor' #heroku logsを詳細表示できる便利gem(必須ではないがあると便利)
gem 'pg' #デプロイ後はpostgresqlを使うように指定
end
その後$git push heroku master
をしたらデプロイは成功した。
herokuデプロイは成功しているのにアプリが表示できない時の対処法
その後、$heroku open
でデプロイできたアプリをブラウザで見ようとしたところ、
HTTP500のエラーが出てサイトが表示されないというエラーが出た。
このエラーの原因は、viewにslimを導入しており、slimのgem記述位置がdeveropmentにあったためだった。
なので、以下2つのgemを、group :development doから、全ての環境で適応される場所に記述。
gem 'slim-rails'
gem 'html2slim'
we're sorry, but something went wrongのエラーへの対処法
その後、rootパスのURLは表示に成功したが、違うコントローラーのURLが通らない。
we're sorry, but something went wrongという表記が出てしまう。
これは、デプロイ前のエラーの原因sqliteが関係していた。
we're sorry, but something went wrongでgoogle画像検索を実行して出てきたこのサイトにある現象と似ていたので、それを実行してみたところエラーが解決した。
$heroku run rake db:migrate
※ちなみにrakeコマンドはrails6以降はrailsでできるので、それを走らせればok
今回のエラーで学んだこと
herokuでデプロイ後なにか表示に問題があった場合は、
$heroku logs -t
でログが確認できる。
Google画像検索も有効
エラーを検索した時に、SEO的強いにQiitaや質問サイトが上の方に出てくるが、Google画像検索だとSEO的に弱いサイトのサムネなども検索できる。
参考になりそうなサムネをクリックすると解決できるかも..??