Я получил слишком много ответов на этот вопрос, но мне нужно больше объяснений на эту тему, так как я хочу знать причину этого.
Я пытаюсь создать PDF с помощью wkhtmltopdf.
Это мои файлы настроек выглядят так:
Settings.py
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
И URL для ссылки на статический файл:
<link rel="stylesheet" href="{% static '/css/template_pdf.css' %}" type="text/css" />
Или
<link rel="stylesheet" href="/static/css/template_pdf.css" type="text/css" />
или
<link rel="stylesheet" href="file:///static/css/template_pdf.css" type="text/css" />
или
Я тоже это использовал:
https://gist.github.com/renyi/f02b4322590e9288ac679545df4748d3
и предоставленный URL как:
<link rel='stylesheet' type='text/css' href='{{ STATIC_URL }}static/css/template_pdf.css' />
Но проблема, которую я понял, заключается в том, что все вышеперечисленное, кроме последнего, прекрасно работает при рендеринге вида:
def view_pdf(request):
"""View function for home page of site."""
context= {'title': 'Hello World!'}
# Render the HTML template index.html with the data in the context variable
return render(request, 'pdf/quotation.html', context=context)
Но для создания pdf с использованием wkhtmltopdf необходимо указать URL, например:
<link rel="stylesheet" href="http:localhost:8000/static/css/template_pdf.css" type="text/css" />
Я знаю, что мне чего-то не хватает в статическом файле. Но я хочу знать, почему он работает с шаблоном рендеринга, а не с Генерацией pdf с использованием wkhtmltopdf.
Я не думаю, что это хорошая идея, чтобы поместить доменное имя непосредственно в ссылочный URL.
Подробное решение для этого было бы полезно, так как я новичок в django.
Я тоже пытался следовать этому ответу, но ничего не получалось: Django wkhtmltopdf не читает статические файлы