Django模板:从文件中嵌入css

时间:2015-11-09 10:27:37

标签: python django templates include embed

我正在处理电子邮件模板,因此我想嵌入一个css文件

<head>
   <style>{{ embed 'css/TEST.css' content here }}</style>
</head>

而不是链接

<head>
   <link href="{% static 'css/TEST.css' %}" rel="stylesheet" type="text/css">
</head>

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

我猜你可以使用include

<style>{% include "/static/css/style.css" %}</style>    

https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#include

但是在视图中加载css文件的内容可能会更好,并将其放在视图的上下文中以将其发送到模板

答案 1 :(得分:2)

您可以使用django-compressor包。它将添加{% compress %}模板标记,可以将一堆JS或CSS文件(或内联代码)连接在一起,并将其作为新的大文件或内联代码放入模板中。例如,为了内联一个CSS文件,您可以使用:

{% compress css inline %}
    <link href="{% static 'css/TEST.css' %}" rel="stylesheet" type="text/css">
{% endcompress %}

您可以将更多CSS文件添加到一个压缩标记中,它们将连接在一起并包装到一个<style>标记中。

查看usage examples了解详情。

答案 2 :(得分:1)

解决方案是使用include:

<head>
    <style>{% include "../static/css/TEST.css" %}</style>
</head>

但它有点乱! 您必须在模板目录中放置副本或链接到css文件。或者您使用上面的硬编码链接,这可能会破坏生产。