Django не может найти путь, хотя он не является жестко заданным

Предыстория этой проблемы такова: я разворачиваю проект Django на рабочем сервере. После тестирования на рабочем сервере я получаю следующую ошибку из моего asgi.log

Проблема в том, что этот путь '/Users/jianxiongwu/Documents/Python/Github/DimsumBox_website/dimsumbox/static/font/Gotham-Light.ttf' находится от моего сервера разработки на другом компьютере. Я убедился, что путь не является жестко закодированным.

Путь указывает на файлы шрифтов, а в моем реальном коде Django они собираются из settings.STATICFILES_DIRS[0] см. ниже фрагмент кода. Возможно ли, что переменная settings.STATICFILES_DIRS кэшируется, поэтому при перемещении моего проекта с сервера разработки на рабочий сервер с помощью git, она была перенесена?

def createPDFDocument():
    '''Creates the PDF document object and adds the font to the document'''
    pdf = PDF()
    #add fonts
    pdf.pdf.add_font(family = 'hdFontLight', 
    fname = settings.STATICFILES_DIRS[0] + '/font/Gotham-Light.ttf',
    uni = True)

    pdf.pdf.add_font(family = 'hdFontMedium',
    fname = settings.STATICFILES_DIRS[0] + '/font/Gotham Medium.ttf', 
    uni = True)
    
    return pdf

Отрывок из моего settings.py

BASE_DIR = Path(__file__).resolve().parent.parent
STATICFILES_DIRS = [os.path.join(BASE_DIR,'static')]

Вы запустили collecstatic на своем рабочем сервере?

Вы можете прочитать эти страницы документации : collectstatic (Собирает статические файлы в STATIC_ROOT) и STATICFILES_DIR settings.

Оказалось, что эта проблема не вызвана settings.STATICFILES_DIR. Я выяснил это, просмотрев журнал, и убедился, что путь к файлу шрифта, указанный библиотеке fpdf2, был действительно правильным. Я не уверен, где на самом деле была проблема, но в итоге я деинсталлировал fpdf2 и переустановил его снова, и проблема была решена. Поэтому я думаю, что проблема должна быть где-то в библиотеке fpdf2.

Вернуться на верх