【发布时间】:2019-11-05 17:02:24
【问题描述】:
当尝试从 Laravel 配置中检索 APP_URL 时,它返回错误的 URL 仅用于开发。
我的环境文件有以下内容:
APP_URL=http://127.0.0.1:9000
但是,当我调用 env('APP_URL') 时,它会返回给我:
'http://localhost'
这不适用于我当前的 docker 设置,它必须是 127.0.0.1:9000
在我的 config/app.php 文件中,我有以下内容:
'url' => env('APP_URL')
我尝试了php artisan config:cache 和php artisan config:clear,但我仍然得到与http://localhost 相同的结果
有什么想法可以从 .env 或 config/app.php 以外的地方获取 http://localhost 吗?
认为值得注意的是使用config('app.url') 也会返回http://localhost
【问题讨论】:
-
您是否对其他 env 值或仅此一个有同样的问题? env 文件是否命名正确/具有正确的权限?
-
这怎么可能?通常这只是因为你正在缓存环境。但是,你说你已经运行了
config:clear。那么,应该是你编辑了错误的.env文件。 -
@nmfzone 这是因为如果应用程序处于开发模式,Laravel 会加载 .env.dev 文件(未记录)。请参阅下面的答案。
-
如果我在代码中使用 route(),它会返回 localhost。如果我在 CLI 中使用 route(),它会返回正确的域。 app['url'] 设置为“mydomain.us-1.sharedwithexpose.com。APP_URL 在 env 文件中设置为相同。但是为什么 route() 会在 artisan tinker 中返回正确的域和 url,但从代码调用时却不这样做?任何建议?我没有 .env.dev 文件。我确实有 .env.example。我在那里更改了 APP_URL 无济于事。我也在使用 docker,但我使用 BeyondCode 中的 Expose 来共享我的本地主机站点与客户。
标签: laravel laravel-5 laravel-6