Возникли проблемы с использованием собственного шрифта в шаблоне на Heroku - PullRequest
1 голос
/ 26 июня 2019

У меня проблема с использованием нестандартного шрифта в Heroku.

Для правильного отображения русского текста на сгенерированных страницах PDF я использую следующий нестандартный шрифт в своем html:

<head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
    <title>Boat pdf</title>

     <style type="text/css">

    @font-face   {
    font-family: Palatino Linotype;
    src: url({% static "fonts/Palatino.ttf" %});
}
body {
    font-family: Palatino Linotype, Arial, sans-serif;
    color: #333333;
}

    </style>
</head>

Itлокально работает нормально, но после перехода на Heroku, когда я пытаюсь сгенерировать pdf-файл на основе html, я получаю исключение:


File "/app/.heroku/python/lib/python3.7/site-packages/django/contrib/staticfiles/storage.py", line 420, in stored_name
2019-06-26T09:52:03.873127+00:00 app[web.1]: raise ValueError("Missing staticfiles manifest entry for '%s'" % clean_name)
2019-06-26T09:52:03.873128+00:00 app[web.1]: ValueError: Missing staticfiles manifest entry for 'fonts/Palatino.ttf'

Это единственная ошибка, связанная с использованием статических файлов.Все остальные статические работают нормально.Я попытался вручную запустить collectstatic еще раз и даже поместил этот шрифт в папку staticfiles вручную - безуспешно.

В производстве статические ресурсы обслуживаются Whitenoize.

Настройки разработки, связанные со статическими:

INSTALLED_APPS = [
    'whitenoise.runserver_nostatic',
STATIC_ROOT = os.path.join(BASE_DIR, "static")  # new
STATIC_URL = '/static/'
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

Производственные настройки:

STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles")
STATIC_URL = '/static/'
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

Вопрос в том, как использовать этот шрифт в Heroku.Где это разместить?Или, может быть, мне нужно изменить URL в шаблоне?

Спасибо!

1 Ответ

0 голосов
/ 26 июня 2019

Ну, почему-то Whitenoize не обслуживает файлы, перемещаемые из «статической» папки проекта, что странно.Я переместил шрифт в папку app / static / app, затем снова запустил collectatic и развернул все это в Heroku.Теперь это работает

...