barryvdh/laravel-dompdf 中的外部链接突然失效
All of a sudden external links not working in barryvdh/laravel-dompdf
我已经使用 barryvdh/laravel-dompdf 很长时间了。
使用外部 CSS(来自本地)和字体(来自 CDN),它工作正常,突然设计崩溃,字体也不起作用所以我检查了视图并知道视图没有加载CSS 和字体。
我正在使用 Laravel 5.5 和 barryvdh/laravel-dompdf 版本是 0.8.6。
在 Laravel 8 中尝试使用 barryvdh/laravel-dompdf 版本 0.9.0 也不起作用。
代码:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Receipt | {{ Auth::user()->name }} - {{ $setting->name }}</title>
<link href="{{ asset('css/bootstrap.css') }}" rel="stylesheet" type="text/css" media="all" />
<link href="{{ asset('css/main.css') }}" rel="stylesheet" type="text/css" media="all" />
<link href="http://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700" rel="stylesheet" type="text/css" media="all" />
<style type="text/css">
/* Another font (Chinese) loaded from local folder for particular tags */
@font-face {
font-family: SimHei;
src: url('{{asset('fonts/simhei.ttf')}}') format('truetype');
}
body{
font-family: Open Sans, Sans-serif; line-height: 1;
}
p {
font-size: 18px;
margin-bottom: 0 !important;
}
</style>
</head>
对于CSS,我已经尝试更新
<link href="{{ asset('css/main.css') }}" rel="stylesheet" type="text/css" media="all" />
到
本地:
<link href="{{ public_path('css/main.css') }}" rel="stylesheet" type="text/css" media="all" />
<link href="{{ base_path().'/css/maincss' }}" rel="stylesheet" type="text/css" media="all" />
<link href="http://127.0.0.1:8000/css/main.css' }}" rel="stylesheet" type="text/css" media="all" />
在服务器上:
<link href="var/www/html/project/public/css/main.css" rel="stylesheet" type="text/css" media="all" />
对于字体,我试过将其作为.ttf文件放在本地文件夹中,导入样式仍然无效。
我已经解决了这个问题。
在这里张贴以防它可以帮助某人。
将 barryvdh/laravel-dompdf 替换为 barryvdh/laravel-snappy
包 Link : https://github.com/barryvdh/laravel-snappy
我的外部样式、图像和字体未加载。
对于样式,我创建了一个 blade 文件,使用 css 代码对其进行了更新,并将其包含在 pdf 模板中 blade.
对于图像,我创建了一个绝对路径
<img src="{{ public_path('images/img1.jpg')}}" alt="No Image" />
对于字体我已经在服务器上安装了字体,
我用的是ubuntu16.04,安装了open sans和SimHei(中文字体) 并更新 font-family 以在我的应用程序中打开 sans & simhei。
我已经使用 barryvdh/laravel-dompdf 很长时间了。 使用外部 CSS(来自本地)和字体(来自 CDN),它工作正常,突然设计崩溃,字体也不起作用所以我检查了视图并知道视图没有加载CSS 和字体。 我正在使用 Laravel 5.5 和 barryvdh/laravel-dompdf 版本是 0.8.6。 在 Laravel 8 中尝试使用 barryvdh/laravel-dompdf 版本 0.9.0 也不起作用。
代码:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Receipt | {{ Auth::user()->name }} - {{ $setting->name }}</title>
<link href="{{ asset('css/bootstrap.css') }}" rel="stylesheet" type="text/css" media="all" />
<link href="{{ asset('css/main.css') }}" rel="stylesheet" type="text/css" media="all" />
<link href="http://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700" rel="stylesheet" type="text/css" media="all" />
<style type="text/css">
/* Another font (Chinese) loaded from local folder for particular tags */
@font-face {
font-family: SimHei;
src: url('{{asset('fonts/simhei.ttf')}}') format('truetype');
}
body{
font-family: Open Sans, Sans-serif; line-height: 1;
}
p {
font-size: 18px;
margin-bottom: 0 !important;
}
</style>
</head>
对于CSS,我已经尝试更新
<link href="{{ asset('css/main.css') }}" rel="stylesheet" type="text/css" media="all" />
到
本地:
<link href="{{ public_path('css/main.css') }}" rel="stylesheet" type="text/css" media="all" />
<link href="{{ base_path().'/css/maincss' }}" rel="stylesheet" type="text/css" media="all" />
<link href="http://127.0.0.1:8000/css/main.css' }}" rel="stylesheet" type="text/css" media="all" />
在服务器上:
<link href="var/www/html/project/public/css/main.css" rel="stylesheet" type="text/css" media="all" />
对于字体,我试过将其作为.ttf文件放在本地文件夹中,导入样式仍然无效。
我已经解决了这个问题。
在这里张贴以防它可以帮助某人。
将 barryvdh/laravel-dompdf 替换为 barryvdh/laravel-snappy
包 Link : https://github.com/barryvdh/laravel-snappy
我的外部样式、图像和字体未加载。
对于样式,我创建了一个 blade 文件,使用 css 代码对其进行了更新,并将其包含在 pdf 模板中 blade.
对于图像,我创建了一个绝对路径
<img src="{{ public_path('images/img1.jpg')}}" alt="No Image" />
对于字体我已经在服务器上安装了字体, 我用的是ubuntu16.04,安装了open sans和SimHei(中文字体) 并更新 font-family 以在我的应用程序中打开 sans & simhei。