はじめに
LaravelでWebアプリケーションを作成しました。ローカル環境ではタイトルが自分の指定したものになっていましたが、デプロイ後の本番環境ではタイトルがLaravelとなってしまっていました。原因と解決方法について記します。
タイトルの指定方法について
私はLaravel Breezeを用いてビューの継承をしています。タイトルについては、app.blade.phpに以下のように記述してあります。
<title>{{ config("app.name", "Laravel") }}</title>
config("app.name") は、Laravelの設定ファイル(config/app.php)の 'name' キーにアクセスするという意味です。そして、nameキーが取得できなかったときはとLaravelがデフォルト値として使用されます。
続いて、config/app.phpを確認すると、以下のように記述してあります。
'name' => env('APP_NAME', 'Laravel'),
これは、.envファイルの'APP_NAME'に指定された値を取得し、APP_Nameが設定されていないときはLaravelをデフォルト値として使用するということです。
続いて、.envを確認すると、以下のように記述してあります。
APP_NAME = Laravel
よって、ここの値を変えるとタイトルが変更できるはずです。ということで、私はここを自分のアプリの名前に変更していました。
デプロイ後に反映されない原因
.envファイルの変更によって、ローカル環境ではタイトルの変更が反映されていましたが、本番環境では反映されていませんでした。この原因は、.envファイルはGithubに公開されていないからでした。そもそも.envファイルにはAPIキーやDB接続情報などが記述されているので、セキュリティの面で公開するわけにはいきません。
.envファイルの変更が反映できないのであれば、config/app.phpを直接変更すれば解決します。
'name' => my_app_name,
これで、本番環境でもタイトルが反映されるようになりました。