はじめに
作成したアプリケーションをAWSでデプロイしようと進めていましたが、都合によりrenderでデプロイする方向に切り替えました。
無事にデプロイできたものの、ブラウザで確認すると、保存はできているが画像の表示が上手くいっていない状態になりました。(窓のアイコン?が出てきてしまう状態)
AWSにてバケットの作成を行なっていたので、そこら辺に問題ありかなと考え問題解決までの道のりを書き残したいと思います。
エラーの内容
保存した画像が表示されるページへ遷移したときに、ターミナルにて以下のエラーが出ました。
ターミナル
ActiveStorage::FileNotFoundError (ActiveStorage::FileNotFoundError):
原因は自分の中でなんとなくわかっていて、冒頭にも書きましたが、AWSでのデプロイ作業の途中でrenderでのデプロイに切り替えたことかなと考えました。
AWSでバケットの作成をするにあたり、画像をS3に保存するためにaws-sdk-s3をインストールしていました。
このgemをアンインストールすると解決できると思い、実行しました。
gemのアンインストールの方法
ターミナル
bundle exec gem uninstall aws-sdk-s3
# bundle exec gem uninstall <gem名> コマンドを実行
ターミナル
Successfully uninstalled aws-sdk-s3-1.117.1
# aws-sdk-s3-1.117.1 が正常にアンインストールされましたという意味です
そして、vscodeのGemfileを開き以下を削除します。
vscode
gem "aws-sdk-s3", require: false
ターミナル
bundle install
rails sをしてブラウザで確認すると、見事に画像が表示されるようになりました。
解決して良かったです。