環境
Ruby 2.6.5
Rails 6.0.3.5
heroku
エラー確認
ActionView::Template::Error (The asset "default_icon" is not present in the asset pipeline.
//中略
<%= image_tag 'default_icon', id: 'preview-icon' %>
herokuへのデプロイ後、アプリにアクセスし新規登録を行おうとした時に、上記のエラーが発生した。
image_tagでassets/imagesに配置している画像を指定しているのだが
"default_icon"というアセットは存在しませんよと言われている。
開発環境では問題なく動作していたため本番環境由来のエラーだと判断し探索開始
参考記事
https://qiita.com/___xxx_/items/fa15f358beba2b9389da
#####公式ドキュメント
https://railsguides.jp/asset_pipeline.html#%E5%8F%A4%E3%81%84%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AErails%E3%81%8B%E3%82%89%E3%82%A2%E3%83%83%E3%83%97%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89%E3%81%99%E3%82%8B
解決法
config/environments/production.rbファイルの書き換え
# Do not fallback to assets pipeline if a precompiled asset is missed.
config.assets.compile = false # <= trueに変換
本番環境ではフォールバックが無効化されているため画像のあるファイルを参照してくれていなかった様です。
RailsにおけるJSやCSSの取り回しの理解がまだまだ浅いので、この辺りもバックエンドの後に詰めたいですね。