【问题标题】:Django WeasyPrint CSS integration warning: Relative URI reference without a base URI: <link href="/static/css/bootstrap.min.css"> at line NoneDjango WeasyPrint CSS 集成警告:没有基本 URI 的相对 URI 引用:<link href="/static/css/bootstrap.min.css"> 行无
【发布时间】:2015-01-21 17:38:02
【问题描述】:

我想在 Django 中使用 Wea​​syPrint 生成报告。但我不知道如何集成 css(特别是引导 css 文件)。我能够看到生成的 html。但是当我将此行添加到我的模板时会收到警告-

&lt;link href="/static/css/bootstrap.min.css" rel="stylesheet"/&gt;

警告是 - 没有基本 URI 的相对 URI 引用:在无行

我想知道如何将基本 URI 发送到模板。任何帮助将不胜感激。

【问题讨论】:

  • 为什么你不使用 {% static %} 模板标签?
  • @RajaSimon 这与这个问题的上下文无关; {% static %} 也产生相对 URL

标签: html css django pdf weasyprint


【解决方案1】:

我必须添加base_url=request.build_absolute_uri()。所以打印命令看起来像:

weasyprint.HTML(string=html,base_url=request.build_absolute_uri()).write_pdf(response)

【讨论】:

  • 请求对象从何而来?
  • @Maecky 我可能回答这个问题有点晚了,但是这个问题有 Django 标签。我假设request 是与所有 Django 视图一起传递的变量。如果您在 Django 视图中并且没有可用的request 变量,您可能需要使用self.request。查看this page in the Django docs
  • 对于更多读者,Weasyprint 基本上想要这个HTML(string=html_rendered, base_url="/app")- 这是一个绝对位置或 URL。当然,它应该是去硬编码的。
【解决方案2】:

在 request.build_absolute_uri() 中添加 '/' 对我有用 -> request.build_absolute_uri('/'):

weasyprint.HTML(string=html,base_url=request.build_absolute_uri('/')).write_pdf(response)

【讨论】:

    猜你喜欢
    • 2015-10-13
    • 2020-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 2021-08-17
    • 1970-01-01
    • 2012-12-05
    相关资源
    最近更新 更多