Django Использовать статические файлы URL в статических файлах - PullRequest
0 голосов
/ 29 сентября 2018

Я хочу использовать пользовательский шрифт в моем style.css файле, который будет обслуживаться StaticFiles

Я знаю, что могу жестко закодировать его следующим образом:

@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

1 Ответ

0 голосов
/ 29 сентября 2018

Для работы {% static %} необходим шаблон Django;не статический файл.На самом деле это возможно: вы можете создать файл с именем ie 1002 * и поместить его в папку templates.В этом файле вы можете использовать {% static %} как обычно.Затем из вашего шаблона вы будете ссылаться на этот файл, используя {% include %}.

. Если вы хотите увидеть полный пример этого, взгляните на мою статью в Django PDF: https://spapas.github.io/2015/11/27/pdf-in-django/#changing-the-font-to-a-unicode-enabled-one

Вот два соответствующих файла:

Таблица стилей Django-шаблона с именем pdfstylefonts.css в каталоге templates:

{% load static %}
@font-face {
    font-family: "Calibri";
    src: url({% static "fonts/calibri.ttf" %});
}

И шаблон html:

{% 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-django (включите его через <style>{% include "pdfstylefonts.css" %}</style>) и обычным файлом css (включите его как обычно с <link rel='stylesheet' href='{% static "pdfstyle.css" %}'/>).

...