我在django-wkhtmltopdf中使用了wkhtmltopdf,我认为我错误地提供了静态文件。 如果我从控制台运行wkhtmltopdf正确收集静态文件并生成一个好的pdf文件:
wkhtmltopdf http://127.0.0.1:8000/dash/test/ test.pdf
“GET /static/base/js/jquery.js HTTP / 1.1”200 93106
“GET /static/base/css/bootstrap.css HTTP / 1.1”200 119892
“GET /static/base/js/bootstrap.min.js HTTP / 1.1”200 27726
“GET /static/dash/css/flot.css HTTP / 1.1”200 1810
“GET /static/dash/js/jquery.flot.categories.js HTTP / 1.1”200 6033
“GET /static/dash/js/jquery.flot.js HTTP / 1.1”200 119052
但是,如果使用django-wkhtmltopdf从您的应用程序生成的PDF文件我只有:
"GET /dash/test/ HTTP/1.1" 200 13246004
生成的PDF文件如下所示:
settings.py中的静态文件我设置如下:
MEDIA_ROOT =''
MEDIA_URL =''
STATIC_ROOT ='/ Users / malt / Django / env / app / static /'
STATIC_URL ='/ static /'
STATICFILES_DIRS =( )
STATICFILES_FINDERS =( )
我还应该检查什么?
答案 0 :(得分:3)
对于静态文件,对于所有设置,我使用类似的东西(在settings.py中):
# settings.py
import os
BASE_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
def ABS_DIR(rel):
return os.path.join(BASE_DIR, rel.replace('/', os.path.sep))
MEDIA_ROOT = ABS_DIR('project_name/site_media/')
MEDIA_URL = '/site_media/'
STATIC_ROOT = ABS_DIR('project_name/static/')
STATIC_URL = '/static/'
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
STATICFILES_DIRS = (
ABS_DIR('project_static'),
)
和urls.py(其中一部分):
# urls.py
from django.conf import settings
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.conf.urls.static import static
# for dev static files serving
if settings.DEBUG:
urlpatterns += staticfiles_urlpatterns()
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
经过测试和运作。也许你对PDF类中的路径有疑问?
答案 1 :(得分:1)
我遇到了类似的问题,我的解决方法是使用完整的网址作为我的days
。
所以,而不是:
STATIC_URL
我不得不使用:
STATIC_URL = '/static/'