Precompiling assets failed.
ログを確認し、rake aborted!の文言を探そう。
「invalid base 64」というエラーが表示されることも多い。
パターン1.jsファイルの配置場所が間違っている
例えば、Rails6系ではapplication.jsには以下のような記述をする。
require("../check_test");
application.jsの配置は(app>javascriopt>packs>application.js)である。
対して、check_test.jsの正しい配置は(app>javascriopt>check_test.js)である。
間違っていないか確認しよう。
rake aborted! SyntaxError: /tmp/build…….
このような表示がターミナルにある場合は、記述ミスが原因である。
ログを確認し、どこの記述に原因があるかを探そう。
パターン3.ActiveSupport::MessageEncryptor::InvalidMessage
master.keyの値がローカルとherokuで一致していない可能性が高い。
「確認したし、合ってるぞ・・・」という場合でも一度こちらを試してみよう。
(「ArgumentError: key must be 16 bytes」というエラーが表示されることが多い)
Step1.credentials.yml.encの削除
config直下にあるので、削除しよう。
Step2.master.keyの削除
こちらもconfig直下にあるので削除しよう。
Step3.削除したものを再作成
ターミナルで以下のコマンドを実行しよう。
EDITOR="vi" bin/rails credentials:edit
これで「credentials.yml.enc」、「master.key」が再作成される。
VSCodeを確認しておこう。
Step4.commit、pushを実効する。
ローカルのmaster.keyが反映されていないため、commit、pushを行ってリモートにも反映しておこう。
Step5.herokuへ環境変数を設定する。
以下のコマンドをターミナルで実行しよう。
heroku config:set RAILS_MASTER_KEY=`cat config/master.key`
Step6.設定の確認
以下のコマンドをターミナルで実行しよう。
heroku config
VSCodeのmaster.keyの中身と同じ文字列になっていればOK。
Step7.再度push
以下のコマンドをターミナルで実行しよう。
git push heroku master
これにて完了である。