【问题标题】:Laravel forcing Http for asssetsLaravel 强制 Https 获取资产
【发布时间】:2020-11-07 00:46:24
【问题描述】:

这有点奇怪,因为这里的大部分问题都想强制 https。

在学习 AWS 弹性豆茎时。我在那里托管一个 laravel 网站。一切都很好,除了我的 javascripts 和 css 文件都没有被加载。

如果在刀片视图中将它们引用为:

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

我尝试的第一件事是通过 SSH 连接到 EC2 实例来查看项目根目录中的文件/文件夹权限。即使我将公共文件夹的权限设置为777,也无法正常工作。

后来我发现,该网站的主页网址是http,而所有资产的网址都是'https'。

如果可能的话,我现在还不想讨论 SSL 证书。

无论如何我可以将我的资产 url 强制为 Http 吗?

请原谅我的幼稚。任何帮助将不胜感激。

【问题讨论】:

    标签: laravel http url https amazon-elastic-beanstalk


    【解决方案1】:

    如果您的站点位于反向代理之后,通常会发生这种情况,作为 URL 辅助门面,信任您的本地实例,该实例超出代理,并且可能不使用 SSL。这可能会产生误导/错误。

    这可能是 EC2 实例的情况...因为 SSL 终止超出了负载平衡器/HA 代理。

    我通常将以下内容添加到我的 AppServiceProvider.php

        public function boot()
        {
            if (Str::startsWith(config('app.url'), 'https')) {
                \URL::forceScheme('https');
            } else {
                \URL::forceScheme('http');
            }
        }
    

    当然这需要确保你已经设置了 app.url / APP_URL,如果你不使用它,你可以去掉 if 语句。但是有点不优雅,并且不允许你在非 https 上开发

    【讨论】:

    • 我稍微修改了一下,因为我没看错,通常你想使用 https 而不是 http.. 但这应该适用于你的情况。与其他。问题的根源是相同的,因为 laravel 对在后端和端点平衡器/入口声明之间发送标头的云组件感到困惑
    猜你喜欢
    • 2016-03-11
    • 1970-01-01
    • 2017-04-04
    • 2021-05-20
    • 2013-07-27
    • 2018-10-12
    • 2018-11-28
    • 2021-08-20
    • 2021-07-14
    相关资源
    最近更新 更多