最近遇到一个非常奇怪的问题,一个Laravel的小项目在开发过程中运行正常,部署到证书环境中,竟然运行出错。
config(‘app.name’) 无法获取站点名称,blade模板的代码如下:
<title>{{ config('app.name', 'APP') }}</title>
检查配置环境没有问题,修改 config/app.php 中的 name 可以正常,代码如下:
<?php //... 'name' => 'Hello App', ?>
使用env(‘APP_NAME’)方式会无法获取站点名称,代码如下:
<?php //... 'name' => env('APP_NAME', 'Hello App'), ?>
诊断问题出在 .env 的问题。检查 .env 配置正常。
复制本地的正常的.env内容到服务器.env,服务器仍然错误。
复制服务器的.env内容到本地.env,本地正常。
这个奇怪的bug困扰了我很久,一直没有解决,切换过PHP版本也没有解决。
今天查看程序,注意了下 编辑的右下角,GB2312,终于破案了。
Laravel的配置文件,必须是UTF-8格式,这个操蛋的小细节竟然困扰了我几个月。
改成UTF-8,一切正常!!