当前位置: 首页 > 知识库问答 >
问题:

pdf格式的Internet公共ip地址和django静态文件

康照
2023-03-14

我用django和weasyprint制作了一个应用程序,打印一个带有图片和css文件的pdf文件,设计了我的pdf文件。我使用nginx、gunicorn和supervisor来部署我的应用程序。在我的内部网一切都还好。当我使用INTERNET公共IP地址在INTERNET上发布时,我的pdf文件不再显示图片和css设计。但是所有应用程序的静态文件都工作得很好,我看到了我的gunicorn日志,但什么都没有。我使用Nginx来服务我的静态文件。这是配置

上游app_server{server unix://webapps/myapp/run/gunicorn.sock fail_timeout=0;}

服务器{

听80;

server_name 127.0.0.1;

位置/media/{alias/webapps/myapp/media/;}

位置/{proxy_set_header x-forwarded-for$proxy_add_x_forwarded_for;proxy_set_header Host$http_host;proxy_redirect off;

   if (!-f $request_filename) {
       proxy_pass http://app_server;
       break;
   }

}

在我的views.py中调用pdf文件,我使用以下

html=render_to_string('pdf/print.html',{'pagesize':'a4'})响应=HttpResponse(content_type=“application/pdf”,)响应['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 }}" >

有人有同样的问题吗?

共有1个答案

卓麒
2023-03-14

在阅读您的编辑后,这个问题似乎是使用Weasyprint不显示图像的PDF输出的重复(Django)

您的代码中已经有了答案的第一部分。但是我在write_pdf()调用中没有看到这一部分:

对于要在PDF上显示的HTML样式,按照Weasyprint文档添加presentational_hints=true:

pdf=html.write_pdf(stylesheets=[css(settings.static_root+'/css/detail_pdf_gen.css')],presentational_hints=true);

 类似资料:
  • 本文向大家介绍静态IP地址和动态IP地址之间的区别,包括了静态IP地址和动态IP地址之间的区别的使用技巧和注意事项,需要的朋友参考一下 静态IP地址和动态IP地址都用于标识网络或Internet上的计算机。静态IP地址由Internet服务提供商提供,并且在系统连接到网络之前一直保持固定。动态IP地址由DHCP提供,通常公司会获得一个静态IP地址,然后为其在组织网络内的计算机生成动态IP地址。 以

  • 若需要在 San CLI UI内建的http服务器上暴露一些静态文件,例如:为自定义视图指定图标。可以通过在插件包根目录里可选的放置一个public文件夹,这个文件夹里的任何文件都会暴露至 /_plugin/:id/* 的http路由。 例如,如果将 x-logo.png 文件放置到 san-cli-ui-widget-x/public/ 文件夹,那么 cli-ui 加载插件的时候可以通过 /_p

  • 本文向大家介绍Ubuntu16.04 静态IP地址设置(NAT方式),包括了Ubuntu16.04 静态IP地址设置(NAT方式)的使用技巧和注意事项,需要的朋友参考一下 为VMware虚拟机内安装的Ubuntu 16.04设置静态IP地址NAT方式 1.安装环境 VMware 12 Ubuntu 16.04 x86_64 2.在VMware中,配置网络环境 VMware在默认安装完成之后,会创建

  • 问题内容: 和之间有什么区别? 例如 : 要么 问题答案: 尽管您 确实 希望遵守约定,但在功能上没有什么区别(字节码将 完全相同 ),请访问JLS-8.3.1。场修饰符: __ 这将是奇怪的,看.. 我也建议您访问checkstyle。 编辑: 从同一页面链接到该部分: http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls

  • 我希望创建一个EMR集群,其中出于安全原因,没有为任何实例分配公共IP地址。我已经能够在我的VPC中启动集群,并使用我自己的自定义安全组,但由于某些原因,默认情况下所有节点都分配了一个公共IP地址。 我在EMR CLI文档中找不到有关如何禁用此功能的任何信息:http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-