Herokuにデプロイした直後に画像が消える
開発環境:cloud9
言語:PHP7.2
フレームワーク:Laravel 5.5
ローカルサーバーでLaravelのプロジェクトを起動していた時はアプリ内で画像は問題なく表示されていました。ちなみにこの時から画像はAWSのS3に保存して取得するようにしていました。アプリの最低限の機能ができたのでherokuへデプロイしてみましたが、画像が一切読み込めなくなりました。おまけに、表示されるエラーが"something went wrong."だけなので困りました。
Herokuのログを確認
とりあえず不具合の原因を探るためにhrokuのログを確認してみました。
$ heroku config:set APP_LOG=errorlog
$ heroku logs
ログを見ると、S3の関連でエラーが出ていることが分かりました。
HerokuにS3用の環境設定をしていなかった
初心者あるあるかもしれませんが、非常に初歩的なミスで、HerokuのconfigファイルにS3の設定を書き込んでいませんでした。というわけで、configファイルにS3の設定を書き込みました。
heroku config:set AWS_ACCESS_KEY_ID=自分のアクセスキーID
heroku config:set AWS_SECRET_ACCESS_KEY=S3へのシークレットアクセスキー
heroku config:set S3_BUCKET_NAME=S3バケットの名前
heroku config:set AWS_DEFAULT_REGION=AWSのリージョン(バージニア北部ならus-east-1)
これで問題なく画像が表示されるようになりました。