我正在使用此格式加载我的CSS: <link href="{{ asset('assets/mdi/css/materialdesignicons.min.css') }}" media="all" rel="stylesheet" type="text/css" />个 并且它对所有http请求都加载得很好.

但是,当我使用SSL(Https)加载登录页面时,我会得到...page... was loaded over HTTPS, but requested an insecure stylesheet 'http...

有人能告诉我如何让Blade 服务器通过https而不是http加载assets资源 吗?

我应该安全地装载assets资源 吗?还是这不是Blade的工作?

推荐答案

当网站使用HTTPS时,通过HTTP协议加载资源时,我遇到了asset函数的问题,这导致了"混合内容"问题.

要解决这个问题,您需要在AppServiceProvider文件中添加\URL::forceScheme('https').

所以我的看起来像这样(Laravel 5.4):

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        if(config('app.env') === 'production') {
            \URL::forceScheme('https');
        }
    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }
}

当您只需要在服务器(config('app.env') === 'production')上使用https,而不需要在本地使用https时,这非常有用,因此不需要强制asset函数使用https.

Php相关问答推荐

Laravel 10查询中的多个where子句

有条件的运费率基于购物车小计与WooPayments货币转换

尽管包含目标日期,但日期范围比较仍有意外输出

PHP:从数组中获取唯一的数字组合

WooCommerce购物车中仅允许一个可下载产品

WooCommerce基于元数据的自定义范围目录排序

WooCommerce管理订单列表自定义列不显示值

限制某些产品只能在WooCommerce的特定邮政编码/邮政编码范围内发货

如果日期是过go 日期,则隐藏事件发布类型

使用HPOS过滤WooCommerce中的订单列表

如何在自定义邮箱内容中获取WooCommerce订单项目的详细信息?

启用 WooCommerce 我的帐户付款方式,允许客户添加付款方式

将 PHP 版本更改为 8.1,但 WordPress 认为我们正在使用版本 7.4?

根据页面的最后修订日期设置 MediaWiki 内部链接的样式

WooCommerce 按 ID 限制产品

在 EasyAdmin 中添加全局操作,将我的按钮放在表格下方而不是上方

mysql / sql修复多对多数据库中的行

使用 PHP ImageMagick 库将 pdf 文件的前 n 页转换为单个 png 图像文件

图像不会显示在生产中的 Laravel 应用程序中

检测字符串是否包含Letter with Tilde或Letter + Combining Tilde