Laravel domPDF не может загрузить внешние css файлы - PullRequest
0 голосов
/ 01 апреля 2020

Я использую domPDF для создания PDF-файлов после того, как пользователь отправил кнопку. Я заметил, что если я использую

<link rel="stylesheet" href="{{asset('health/css/bootstrap.min.css')}}">

, он не будет генерировать PDF и всегда будет загружаться вечно. Я пытался использовать file_get_contents, но, похоже, он также не работает. Может кто-нибудь сказать мне, что мне делать с этим? Если вы знаете.

Контроллер

        $css = 'health/css/bootstrap.min.css';
        $data_type = pathinfo($css, PATHINFO_EXTENSION);
        $css_data = file_get_contents($css);

        //I can get the image by using this code
        $path = 'health/img/logo.png';
        $type = pathinfo($path, PATHINFO_EXTENSION);
        $data = file_get_contents($path);
        $base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);

        //for testing view
        return view('emails.form',compact('base64','css_data'));

Blade

 <link rel="stylesheet" href="{{$css_data}}">
 <img src="{{$base64}}" class="img img-fluid img-center">

1 Ответ

0 голосов
/ 01 апреля 2020

DomPDF требует использования абсолютного локального пути к файлу CSS в атрибуте href вашего элемента ссылки, а не внешнего URL-адреса файла.

Вы хотели бы использовать что-то похожее на следующее:

<link rel="stylesheet" href="{{ public_path('health/css/bootstrap.min.css') }}">

Это то же самое для любого внешнего ресурса, который вы будете использовать sh (CSS, Image и т. Д. c.)

. Вы можете найти больше информации об этом здесь из их вики-сайта GitHub.

Если вы используете DomPDF напрямую, вы также можете установить базовый путь, из которого загружается DomPDF, см. здесь для другого ответа по этому поводу.

...