首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在生产环境中,WickedPdf不显示来自S3的远程映像

在生产环境中,WickedPdf不显示来自S3的远程映像
EN

Stack Overflow用户
提问于 2018-12-13 00:19:38
回答 1查看 606关注 0票数 3

首先,在我的开发环境和生产环境中,一切都运行得很好,直到我将我的Rails应用程序更新到Rails 5.2.2和Ruby到2.5.3 (这两个版本都只是几个小版本)。我更新了一些其他的gem,但是wkhtmltopdf-binary和pdf都没有更新。我不确定它们之间的依赖关系。在生产环境中(使用Heroku),wicked_pdf不能从我的域外渲染图像。

以下是我正在使用的gem:

代码语言:javascript
复制
gem 'wicked_pdf' #version 1.1.0
gem 'wkhtmltopdf-binary' #version 0.12.4

以下代码在开发中可用,但在生产中不可用:

代码语言:javascript
复制
<%= image_tag @invoice.job.customer.account.logo.url, width: 220 %>
<%= image_tag @invoice.job.customer.account.logo_url, width: 220 %>
<%= wicked_pdf_image_tag @invoice.job.customer.account.logo_url, width: 220 %>
<img  src="<%= @invoice.job.customer.account.logo_url %>" width="220">

在生产环境中显示本地图像:

代码语言:javascript
复制
 <%= image_tag "logo.png" width: 220 %>

我认为这与Heroku有关,因为我读到过wkhtmltopdf-binary和Heroku的问题,但从我所做的尝试中没有任何运气。

EN

回答 1

Stack Overflow用户

发布于 2019-01-15 02:13:32

所以我不得不使用一个不同的函数,并用它做了一个帮助器。您可能最感兴趣的是embed_remote_image方法,以及我是如何在较大的helper中使用它的(它确定它是项目的正面还是背面图像,如果缺失则显示自定义缺少的图像)。

代码语言:javascript
复制
  # PDF image include - dont' need link logic, needed for https images
  # per https://github.com/mileszs/wicked_pdf/issues/36#issuecomment-91027880
  require 'open-uri'
  def embed_remote_image(url, content_type)
    asset = open(url, "r:UTF-8") { |f| f.read }
    base64 = Base64.encode64(asset.to_s).gsub(/\s+/, "")
    "data:#{content_type};base64,#{Rack::Utils.escape(base64)}"
  end

  def issue_image_pdf_display(issue, graphic, size, sizeinpx, issuer = nil, nolink = false, chapter_issue = false)
    if !graphic.blank?
      if graphic == issue.imageback
        image_tag(embed_remote_image(issue.imageback_url(size), 'image/png'))
      else
        image_tag(embed_remote_image(issue.image_url(size), 'image/png'))
      end
    else
      missing_image_display(issue, size, sizeinpx)
    end
  end

您还需要构建包。https://github.com/dscout/wkhtmltopdf-buildpack.git

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53747204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档