Django-Weasyprint图像未呈现

时间:2018-07-11 14:22:17

标签: python html css django weasyprint

我已经使用Weasyprint将HTML文件呈现为PDF。但是,没有显示图像。我尝试过针对此处发布的类似问题的解决方案,并将代码重写为:

response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename=%s.pdf' % emp_id
pdf_doc = HTML(string=render_output,base_url=request.build_absolute_uri()).render()
pdf_doc.write_pdf(response)
return response

我已经在模板中定义了img标签,如下所示:

<img class="logo" src="static/app/nineleaps.png" alt="Not Found">

PDF不显示图像,而是显示“未找到”。 有针对这个的解决方法吗?其他html到pdf转换器不能像这样精确地渲染我的模板,因此我更喜欢仅使用WeasyPrint的模板。

1 个答案:

答案 0 :(得分:2)

您可能希望base_url

request.build_absolute_uri('/')

–如果忽略该位置,则会获得当前请求的绝对路径,您可能无法在其中添加/static/app/nineleaps.png

如果失败,则应该可以查看runserver的控制台输出。 Weasyprint尝试做出的请求(以及哪些404)应该在此处可见...