php – Laravel资产URL忽略https

我在我的模板中使用以下代码加载我的CSS文件:

<link rel="stylesheet" href="{!! URL::asset('css/app.css') !!}">

如果我在本地计算机上通过https查看页面,那么指向app.css文件的链接也是https,但是在我的实时服务器上这不会发生.如果您通过https view the live site并查看源,您可以看到CSS文件的链接仍然超过正常的http,因此不会加载.有谁知道为什么会这样?

最佳答案
当您的用户通过HTTPS访问时,您的CloudFlare配置会使用HTTP将这些请求传递到您的服务器上.您有两种选择:

>启用CloudFlare的完整或严格SSL. https://blog.cloudflare.com/origin-server-connection-security-with-universal-ssl/
>设置您的网络服务器以查看X-Forwarded-Proto标头,并告诉PHP当标头的值为https时,通过HTTPS访问它.如何做到这一点取决于您的网络服务器.例如,在nginx中,我为Amazon的ELB(发送相同的头文件)执行此操作:

map $http_x_forwarded_proto $is_https {
    default off;
    https on;
}

然后在我的FastCGI params文件中:

fastcgi_param  HTTPS              $is_https if_not_empty;

在Apache中,我认为如果安装了mod_setenvif,你可以这样做:

SetEnvIf x-forwarded-proto https HTTPS=on

转载注明原文:php – Laravel资产URL忽略https - 代码日志