Django - Новые шрифты?
Как установить новые шрифты с помощью Django? Об этом не упоминается в документах.
У меня есть мои шрифты, установленные в статической папке как такие шрифты /abc.ttf
Например, в шаблоне, если это был CSS, я бы связал его как таковой:
<link href="{% static 'fonts/abc.ttf' %}" rel="stylesheet" media="screen">
за исключением того, что это не CSS, и я не нашел никаких ресурсов о том, как это сделать.
Включить ли ссылку в файл CSS так?
@font-face {
font-family: 'abc';
src: url({% static 'fonts/abc.ttf' %});
src: local({% static 'fonts/abc.ttf' %})
}
Любая помощь будет оценена.
Ответы
Ответ 1
Для структуры каталогов, например,
-- static
|--fonts
| |--abc.ttf
|
|--css
|-- main.css
В main.css
вы должны добавить.
@font-face {
font-family: 'abc';
src: local('Abc'),
url('../static/fonts/abc.ttf') format("truetype");
}
Вы не можете использовать {% static 'filename' %}
внутри css файла, так как он не будет отображаться движком шаблонов django.
Кроме того, если вы хотите, вы можете добавить следующее в раздел <head>
base.html
, и он отобразит полный путь для статических ресурсов:
<style>
@font-face {
font-family: 'abc';
src: local('Abc'),
url('{% static 'fonts/abc.ttf' %} format("truetype")');
}
</style>
Редактировать: Исправлено использование local
а также удалены предпочтения вокруг расположения тега стиля в HTML.
Ответ 2
Я использую эту опцию, чтобы избежать абсолютного пути и/или CSS в HTML-шаблон:
@font-face {
font-family: 'HKGrotesk';
font-style: normal;
font-weight: bold;
src: local('HKGrotesk'), url('/static/fonts/hk-grotesk/HKGrotesk-SemiBoldLegacy.otf') format('opentype');
}