Django-Weasyprint 图像未呈现

Django-Weasyprint image not rendered

我使用 Wea​​syprint 将我的 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 不显示图像,而是显示 "Not Found"。 有针对这个的解决方法吗?其他 html 到 pdf 的转换器不会像这样准确地呈现我的模板,所以我更喜欢只使用 Wea​​syPrint 的东西。

您可能希望 base_url 成为

request.build_absolute_uri('/')

– 如果省略位置,您将获得当前请求的绝对路径,这可能不是您可以将 /static/app/nineleaps.png 附加到的内容。

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