我在模板中使用以下代码来加载CSS文件:
<link rel="stylesheet" href="{!! URL::asset('css/app.css') !!}">
如果我在本地计算机上通过https查看页面,则指向app.css文件的链接也是https,但是在我的实时服务器上却没有发生。如果您通过https查看实时站点并查看源,则可以看到CSS文件的链接仍位于常规http之上,因此不会加载。有人知道为什么会这样吗?
当您的用户通过HTTPS访问时,您的CloudFlare配置会将这些请求通过HTTP传递到您的服务器上。您有两种选择:
启用CloudFlare的完全或严格SSL。https://blog.cloudflare.com/origin-server-connection-security-with-universal-ssl/
设置您的网络服务器以查看X-Forwarded-Proto
标头,并在标头值为时告诉PHP正在通过HTTPS访问https
。如何执行此操作取决于您的Web服务器。例如,在nginx中,我对亚马逊的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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句