Django - 渲染到字符串无法加载 CSS

2024-05-12

我正在尝试使用 Django(1.8) render_to_string 通过管理命令将 html 转换为 pdf,而不是使用 View/request。以下代码可以将模板转换为 pdf。但它无法将 CSS 加载到模板中。

def html_to_pdf():
    ...
    context = {'some_key': 'some_value'}
    html = render_to_string('my_app/sample.html', context)
    file.write(html)
    ...

示例.html

{% load static %}
<link href="{% static 'my_app/css/sample.css' %}" rel="stylesheet" type="text/css"/>

我还在设置文件中定义了静态:

STATIC_URL = '/static/'

在我的 Django 项目中,还有另一个 View 函数,可以在调用 url 时使用 CSS 加载模板。所以我认为这个问题与 render_to_string 有关。

任何人都可以帮忙吗?


假设你有django.core.context_processors.static对于 Djangodjango.template.context_processors.static对于模板上下文处理器中的 1.10,问题是您正在传递一个简单的上下文字典,而使用render在视图中你神奇地得到了RequestContext https://docs.djangoproject.com/en/1.10/ref/templates/api/#subclassing-context-requestcontext它根据您设置中的上下文处理器自动填充一些变量。在这种情况下上下文处理器 https://docs.djangoproject.com/en/1.10/ref/templates/api/#django-template-context-processors-static填充一个名为的变量STATIC_URL等于您设置中同一变量的值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django - 渲染到字符串无法加载 CSS 的相关文章