首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django在静态文件中使用静态文件URL

Django在静态文件中使用静态文件URL
EN

Stack Overflow用户
提问于 2018-09-29 15:47:55
回答 1查看 1.5K关注 0票数 1

我想在我的style.css文件中使用一种将由StaticFiles提供服务的自定义字体

我知道我可以用这样的方式硬编码:

代码语言:javascript
复制
@font-face {
  font-family:"NotoSansArabic";
  font-style:normal;
  src:
  url("/static/myApp/fonts/NotoSansArabicUI-ExtraBold.ttf") format("truetype")
}

我在找这样的东西:

{% static 'myApp/fonts/NotoSansArabicUI-ExtraBold.ttf' %}

还有别的办法吗?

字体和style.css都用作Static

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-29 16:04:40

要使{% static %}工作,您需要一个Django模板,而不是一个静态文件。这实际上是可能的:您可以创建一个名为i.djangostyle.css的文件并将其放入您的templates文件夹中。在这个文件中,您可以像往常一样使用{% static %}。然后,从模板中使用{% include %}引用这个文件。

如果您想看到这方面的完整示例,请查看我的Django PDF指南文章:https://spapas.github.io/2015/11/27/pdf-in-django/#changing-the-font-to-a-unicode-enabled-one

下面是两个相关的文件:

名为pdfstylefonts.css的Django模板样式表位于templates目录中:

代码语言:javascript
复制
{% load static %}
@font-face {
    font-family: "Calibri";
    src: url({% static "fonts/calibri.ttf" %});
}

以及html模板:

代码语言:javascript
复制
{% load static %}
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style>
        {% include "pdfstylefonts.css" %}
    </style>
    <link rel='stylesheet' href='{% static "pdfstyle.css" %}'/>
</head>
<body>
    <h1>Λίστα βιβλίων</h1>
    <img src='{% static "pony.png" %}' />
    <table>
        <tr>
            <th>ID</th><th>Title</th><th>Cover</th>
        </tr>
        {% for book in books %}
            <tr>
                <td>{{ book.id }}</td><td>{{ book.title }}</td><td><img src='{{ book.cover.url }}' /></td>
            </tr>
        {% endfor %}
    </table>
</body>
</html>

请注意css模板(通过<style>{% include "pdfstylefonts.css" %}</style>包含它)和普通css文件(在<link rel='stylesheet' href='{% static "pdfstyle.css" %}'/>中通常包括它)之间的区别。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52570000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档