gpt4 book ai didi

php - Laravel:无需协议(protocol)即可设置 Assets

转载 作者:可可西里 更新时间:2023-11-01 12:36:15 25 4
gpt4 key购买 nike

使用 asset 辅助函数如下:

<script src="{{ asset('/assets/js/jquery-2.1.1.min.js') }}"></script>

会得到

<script src="http://xxx.xxx.com/assets/js/jquery-2.1.1.min.js"></script>

有没有什么laravel内置的解决方案可以让它成为

<script src="//xxx.xxx.com/assets/js/jquery-2.1.1.min.js"></script>

并使用 httphttps 协议(protocol)正确显示?

[编辑]

我知道 Laravel 通常会正确检测协议(protocol),但在负载均衡器后面时,它不会。所以我仍在寻找解决方案。

最佳答案

只有当请求被认为是安全的时候,Laravel 才会创建安全链接。

Laravel 已经有办法将来自“受信任的代理”的非 httpS 流量视为“安全”。

您可以像这样在您的应用程序服务提供商中声明此类受信任的代理:

 Request::setTrustedProxies(array( '199.27.128.0/21', 'some other range'));

此外,请确保您的负载均衡器正确设置了以下 header :

Host, X-Forwarded-Host, X-Forwarded-Port, X-Real-IP, X-Forwarded-For and X-Forwarded-Proto

cloudflare 等“公共(public)”代理已经做到了这一点。

基本上这里的要点是客户端连接在其中一个前端服务器(充当代理)处终止,因此我们必须声明来自该服务器的通信是可信的,以便 laravel 使用来自代理服务器的 header 而不是值本地阅读。

这样做可以使 Request::isSecure() 或 Request::ip() 等函数返回一致的结果。

关于php - Laravel:无需协议(protocol)即可设置 Assets ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27563103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com