Присвоение файла css, расположенного в static, после развертывания сайта
Я развернул проект Django, используя Apache2, все работает хорошо, кроме weazyprint, который создает PDF файл для форм. pdf работал нормально при тестировании и на локальном хосте.
Теперь каждый раз, когда я обращаюсь к pdf, он показывает эту ошибку:
FileNotFoundError at /business_plan/businessplan/admin/info/2/pdf/
[Errno 2] No such file or directory: '/home/ahesham/Portfolio/static\\css\\report.css'
Я пытался изменить \
и добавить его дважды, но это не сработало
вот views.py
def admin_order_pdf(request, info_id):
info = get_object_or_404(Info, id=info_id)
html = render_to_string('businessplan/pdf.html', {'info': info})
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'filename="order_{}.pdf"'.format(
Info.id)
weasyprint.HTML(string=html,base_url=request.build_absolute_uri()).write_pdf(response,
stylesheets=[weasyprint.CSS(settings.STATICFILES_DIRS[0] + '\css\\report.css')], presentational_hints=True)
return response
Ошибка возникает из-за этого \css\\report.css
зная, что файл report.css находится в папке static, а все css и js деплоя сайта работают совершенно нормально и я пробовал python manage.py collectstatic
не помогло
Мой вопрос: Что я делаю неправильно и как мне это исправить?
Пожалуйста, сообщите мне, если требуется дополнительная информация
Возможно, Weasyprint был загружен неправильно:
try:
pip install django-weasyprint
Я тоже столкнулся с такой же ошибкой
'pango_context_set_round_glyph_positions' not found in library
Я думаю, что вы используете weasyprint версии 53.0, которая требует pango версии 1.44.0+
понижение версии weasyprint до 52.5 решило мою проблему, так как для этого не требуется последняя версия pango.
Вы также можете проверить это https://github.com/Kozea/WeasyPrint/issues/1384