我使用 django 和 weasyprint 制作了一个应用程序,它打印一个带有图片和 css 文件的 pdf 文件,这些文件设计了我的 pdf 文件。我使用 nginx、gunicorn 和 supervisor 来部署我的应用程序。在我的 Intranet 中一切正常。当我使用互联网公共 IP 地址在互联网上发布它时,我的 pdf 文件不再显示图片和 css 设计。但是所有应用程序的静态文件都运行良好我看到了我的 gunicorn 日志,但什么也没有。我使用 Nginx 来提供我的静态文件。这个配置
上游 app_server { 服务器 unix:/webapps/myapp/run/gunicorn.sock fail_timeout=0; }
服务器 {
听 80;
服务器名称 127.0.0.1;
client_max_body_size 4G;
access_log /webapps/myapp/logs/nginx-access.log;
错误日志/webapps/myapp/logs/nginx-error.log;
位置 /static/ { 别名 /webapps/myapp/basegenecirdes/public/static/; }
位置 /media/ { 别名 /webapps/myapp/media/; }
location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header 主机 $http_host; 代理重定向关闭;
if (!-f $request_filename) { proxy_pass http://app_server; break; }
}
在我的views.py中调用一个pdf文件,我用这个
html = render_to_string('pdf/print.html', {'pagesize':'A4'}) response = HttpResponse(content_type="application/pdf",) response['Content-Disposition'] = 'inline; filename="print.pdf"' weasyprint.HTML(string=html,base_url=request.build_absolute_uri()).write_pdf(response)
返回响应
静态图片文件:
<img style="background-color: white" src="{% static "image/photo_50x48.png" %}">
媒体图像文件
<img alt="{{ a.nom }}" src="{{ a.photo.thumbnail.url }}" >
有人有同样的问题吗?