【发布时间】:2020-03-07 19:29:18
【问题描述】:
如果您在 Heroku 上,您可能已经注意到,当您有分页链接时,它会通过 HTTP 输出。这是一个问题,因为当您尝试访问该页面时,您会收到混合内容错误,因为这些链接不在 HTTPS 中。你如何解决这个问题?
【问题讨论】:
-
检查
APP_URL在.env文件中的值是什么。
标签: laravel
如果您在 Heroku 上,您可能已经注意到,当您有分页链接时,它会通过 HTTP 输出。这是一个问题,因为当您尝试访问该页面时,您会收到混合内容错误,因为这些链接不在 HTTPS 中。你如何解决这个问题?
【问题讨论】:
APP_URL 在.env 文件中的值是什么。
标签: laravel
要解决这个问题,您只需进入 AppServiceProvider.php 并在启动方法中添加以下内容:$this->app['request']->server->set('HTTPS','on');
【讨论】:
这是 Heroku 负载平衡系统的副作用。 Heroku 设置了一个 X-Forwarded-Proto 标头,但 Laravel needs some minor configuration 可以正确处理它。这是由 fideloper/proxy 包处理的(从 v5.5 开始,它内置在 Laravel 中)。首先,发布配置文件:
php artisan vendor:publish --provider="Fideloper\Proxy\TrustedProxyServiceProvider"
然后,在生成的config/trustedproxy.php 文件中:
'proxies' => '*',
您的应用现在应该正确反映 HTTP/HTTPS 状态。 (作为额外奖励,您还将获得用户的正确 IP 地址,而不是 Heroku 负载均衡器的内部 IP。)
【讨论】: