76

この形式を使用して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...

http ではなく https 経由でブレード ロード アセットを作成する方法を教えてください。

アセットを安全にロードする必要がありますか? それともブレイドの仕事じゃないの?

4

11 に答える 11

83

secure_assetはあなたが探しているものだと思います

<link href="{{ secure_asset('assets/mdi/css/materialdesignicons.min.css') }}" media="all" rel="stylesheet" type="text/css" />

2018 年 5 月 15 日編集:私の回答は質問に直接対応していますが、Laravel が最近できることを考えると、少し時代遅れです。特定の環境では HTTPS を強制したいが、他の環境では強制したくない場合があるかもしれません。

この種のケースをカバーするためのより柔軟なソリューションについては、以下の Scofield の回答を参照してください。

2020 年 8 月 11 日編集:真剣に、Scofield の回答は私の回答よりも優れており、さまざまな環境に対してより柔軟に対応できます。彼にあなたのアップドゥースを与えてください。

于 2015-12-20T05:05:06.537 に答える
12

true別のアプローチは、2 番目のパラメーターとして渡すことです。

/**
 * Generate an asset path for the application.
 *
 * @param  string  $path
 * @param  bool    $secure
 * @return string
 */
function asset($path, $secure = null)
{
    return app('url')->asset($path, $secure);
}

以下に示すように、単純に 2 番目のパラメーターでsecure_asset呼び出します。assettrue

/**
 * Generate an asset path for the application.
 *
 * @param  string  $path
 * @return string
 */
function secure_asset($path)
{
    return asset($path, true);
}
于 2015-12-20T05:41:20.177 に答える
0

これをブレードファイルに入れることになりました:

@if(parse_url(url('/'), PHP_URL_SCHEME) == 'HTTPS')
    <link rel="stylesheet" href="{{ secure_asset('assets/css/slider.css') }}">
    <link rel="stylesheet" href="{{ secure_asset('assets/css/dropdown.css') }}">
@else
    <link rel="stylesheet" href="{{ asset('assets/css/slider.css') }}">
    <link rel="stylesheet" href="{{ asset('assets/css/dropdown.css') }}">
@endif
于 2019-11-20T09:09:09.497 に答える