Используйте динамический URL в стиле блейд barryvdh / laravel-dompdf - PullRequest
0 голосов
/ 20 сентября 2019

Я создаю PDF с помощью: laravel-dompdf

Мне не удается заставить работать динамические URL-адреса.

Пример:

Внутри моего блейд-файла у меня есть встроенная настройка стиля, и мне нужно, чтобы фоновое изображение было полным путем:

<style>
.cardbg{
background: url('https://examplesite.com/images/pic.jpg')
}
/* I've tried the following variations with no luck.
I don't understand why this is not working. */
        background: url('{{asset('/images/pic.jpg')}}');
        background: url('{{public_path('/images/pic.jpg')}}');
        background: url('{{storage_path('/images/pic.jpg')}}');
        background: url('{{config('app.url').'/images/pic.jpg'}}');

</style>

Также добавил прямой путь к переменной в моем контроллере, как это:

    public function examplePdf($id){
        $pdfbg = config('app.url').'/images/pic.jpg';

        $pdf =  PDF::loadView('admin.dir.example-pdf', compact('pdfbg'))->setPaper('letter', 'landscape');
        return $pdf->stream('example.pdf');

Затем вызовите, как это в блейде <style>:

.cardbg{
background: url('{{$pdfbg}}');
}

Все еще ничего ... Какойне имеет смысла, потому что когда я делаю dd($pdfbg);, я получаю правильный путь к изображению."https://examplesite.com/images/pic.jpg"


Я получил полный путь для правильного рендеринга За пределами тегов <style>, выполнив это:

<img  src="{{public_path("/storage/images/folder/$var->example/profile-img/$var->img_name")}}">

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 20 сентября 2019

Вам лучше использовать фасад URL и вызывать метод актива для такого рода ситуаций.Вы должны удалить url(), поскольку {{assets()}} уже дает url уже

{{ URL::asset('public/images/pic.jpg') }}

, или вы можете попробовать вот так

{{ url('/') }}/images/pic.jpg
...