我在模板中使用以下代码来加载 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
header 并告诉 PHP 当该 header 的值是时正在通过 HTTPS 访问它https
。如何执行此操作在一定程度上取决于您的网络服务器。例如,在 nginx 中,我为 Amazon 的 ELB 执行此操作(它发送相同的标头):
map $http_x_forwarded_proto $is_https {
default off;
https on;
}
然后在我的 FastCGI 参数文件中:
fastcgi_param HTTPS $is_https if_not_empty;
在 Apache 中,我认为如果安装了 mod_setenvif 你可以这样做:
SetEnvIf x-forwarded-proto https HTTPS=on
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)