Python-Flask не принимает пользовательские шрифты

#python #flask

#python #flask

Вопрос:

Схема папок

Шаблоны

  • File.html

Статический

  • Шрифты
  • Стиль

В файле css я попытался :

 @font-face{
font-family:<Font_name>
src:{{ url_for('static',filename='fonts/<font_name>.ttf') }} ;
}
  

Какие изменения необходимо внести, чтобы добавить пользовательские шрифты?

Комментарии:

1. Спасибо за ваш (ИМХО) очень хорошо написанный вопрос!

Ответ №1:

Вы не можете использовать теги шаблонов в css. теги шаблона Jinja предназначены только для HTML-файлов и шаблонов, а не для css.

Чтобы использовать файл css, вам нужно вставить туда ссылку вручную, что-то вроде:

 @font-face{
    font-family: customfont;
    src: /static/Fonts/font.ttf';
}
  

Единственный способ обойти это — использовать шаблон, содержащий css, встроенный в <style></style> теги, чтобы flask мог интерпретировать теги шаблона. итак, с этим у вас должно быть что-то вроде этого

 <style>
@font-face{
    font-family: <Font_name>
    src: {{ url_for('static',filename='fonts/<font_name>.ttf') }} ;
}
</style>
  

Ответ №2:

Предполагая, что ваш каталог проекта настроен так (стрелки = уровень каталогов):
~/
> static/
>> fonts /
>>> MyFont.woff
> шаблоны /
>>index.html
>main.py

следующая реализация fontface в вашем index.html тег стиля должен работать:

 <html>    
    <head>
        <style>
         @font-face {
            font-family: "MyFont";
            src: url("/static/fonts/MyFont.woff");
        }
        </style>
    </head>
</html>