[Laravel] .env に設定した APP_NAME が表示されない
通常 Laravel では .env ファイルに APP_NAME でアプリケーションの名前を設定すると思います。
そして blade のレイアウトで
1 2 3 |
<title>{{ config('app.name') }}</title> |
のように指定すれば表示されるはずです。
問題
ところが、あるサーバーで .env を
1 2 3 4 5 6 7 |
APP_NAME=テスト用システムの名前 APP_ENV=test APP_KEY=base64:XXXXXXXXXXXXXXXX APP_DEBUG=true ... |
のように設定してもなぜか表示されませんでした。
1 2 3 |
<title></title> |
というように config ヘルパー関数の戻り値が空になってしまいます。
原因
.env の文字コードを確認したところファイルの文字コードが ISO-8859 (ASCII)になっていました。
1 2 3 4 |
$ file .env .env: ISO-8859 text |
どうやら元にした .env.example ファイルに日本語が一切書かれていなかったため、サーバー側のエディタで編集したときに文字コードが UTF-8 だと認識されなかったようです。
対応
.env の文字コードを UTF-8に変換すれば OK です。 nkf コマンドで変換してみます。
1 2 3 |
$ nkf -w --overwrite .env |
.env を変更したら config のキャッシュをクリアしてを反映させます。
1 2 3 4 5 |
$ php artisan config:cache Configuration cache cleared! Configuration cached successfully! |
これで問題なく表示されました。
ITエンジニア募集中!
キュアコード株式会社はITエンジニアを募集しております。少人数の職場なので、上流・下流やサーバー・クライアント対応の垣根なく、あなたの強みを活かしながら いろいろなことにチャレンジ可能です。エンジニアとしての未経験の方、経験が少ない方も歓迎しています。
下記よりITエンジニア募集の採用情報をご覧いただけます。
バージョンによって違うのかもしれませんが、app/nameではなくapp.nameではないでしょうか。
わたしの環境は6.xですが、app.nameではないと表示されませんでした。
ご指摘の通りです。ありがとうございます。修正いたしました。