在刀片样式barryvdh / laravel-dompdf中使用动态URL

时间:2019-09-20 17:27:53

标签: php laravel dompdf

我正在通过以下方式生成PDF:laravel-dompdf

我似乎无法使用动态网址。

示例:

在我的刀片文件中,我具有类似的内联样式设置,并且我需要背景图片是完整路径:

<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 :(得分:0)

在这种情况下,最好使用URL外观并调用asset方法。您必须删除url(),因为{{assets()}}已经给了您url

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

或者您可以尝试这样

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