我正面临着一个奇怪的情况,只要看看下面的代码在一个刀片文件,和它的输出
刀片
{{ url('xero_invoice_authorised') }}</br>
config app url - {{ config('app.url') }}</br>
env app url - {{ env('APP_URL') }}
输出
http://xxxx/xero_invoice_authorised
config app url - https://xxxx/
env app url - https://xxxx/
url()
返回的URL为http:
,但应该是https:
。
系统位于Docker容器中。
我已经运行了所有命令来清除该高速缓存、视图、路由,甚至运行了optimize
命令。
谁能告诉我我的配置出了什么问题?或者有什么方法可以解决这个问题?
我需要{{ url('') }}
来返回.env
文件中的APP_URL
。
2条答案
按热度按时间jdg4fx2g1#
完全没有错误,它正按预期工作。
首先,永远不要在
config
文件夹之外使用env()
,因为当你运行php artisan optimize
或php artisan config:cache
时,env()
总是会返回null
。更多信息请参见文档。如果这只是一个测试,我能理解,但要记住。其次,
url()
总是返回http
而不是https
。如果需要https
,则必须使用secure_url()
。查看url()
和secure_url()
的文档。第三,只是为了向你展示它是如何工作的,这里是
url()
的官方源代码,UrlGenerator
是处理http://
或https://
的,你可以尝试调试它正在阅读的内容,并检查为什么它使用insecure而不是另一个。f4t66c6m2#
在不同的尝试找到一个工作方法后,我用以下内容更新了AppServiceProvider,以在生产环境中强制使用HTTPS。文件:app/Providers/AppServiceProvider.php