【问题标题】:Wicked_pdf not working with HerokuWicked_pdf 不适用于 Heroku
【发布时间】:2011-12-13 20:07:09
【问题描述】:

我正在为我的应用程序完成一个 PDF 报告实现,它在开发模式下完美运行,但是当上传到 Heroku 时,它不起作用,并且我收到以下错误:

2011-10-24T03:28:02+00:00 app[web.1]: RuntimeError (Failed to execute:
2011-10-24T03:28:02+00:00 app[web.1]: /app/.bundle/gems/ruby/1.9.1/bin/wkhtmltopdf --header-html 'file:///app/tmp/wicked_header_pdf_1_0.html' --footer-html 'file:///app/tmp/wicked_footer_pdf_1_0.html'     --orientation 'landscape' --page-size 'A4' --encoding 'UTF-8'   -q - - 
2011-10-24T03:28:02+00:00 app[web.1]: Error: PDF could not be generated!):
2011-10-24T03:28:02+00:00 app[web.1]:   app/controllers/gliders_controller.rb:244:in `block (2 levels) in report'
2011-10-24T03:28:02+00:00 app[web.1]:   app/controllers/gliders_controller.rb:228:in `report'

我尝试按照github repository 中的示例添加一个初始化程序并手动将 wkhtmltopdf bin 文件上传到 heroku,但我仍然无法让它工作。

我似乎无法理解为什么这在 H​​eroku 中不起作用的确切原因,有人可以帮帮我吗?提前致谢。

【问题讨论】:

标签: ruby-on-rails-3 heroku pdf-generation wicked-pdf


【解决方案1】:

Heroku 是一个只读文件系统,您正试图在该系统上创建一个新文件。你不能这样做。

【讨论】:

  • 嘿瑞恩,检查我的答案,我得到它的工作!我没有尝试写入 heroku 的文件系统,因为我在 response_to 块中向用户显示 pdf。无论如何感谢您的回答!
  • 这几天情况略有变化 - tmp 在 Heroku 上一直是可写的,而在 Cedar 堆栈上它是完全可写的,只是不会在 dynos 上持续存在。
【解决方案2】:

我让它工作了。经过一番搜索,我找到了一个 github repo,它实现了一个 wicked_pdf initializer,它适用于 Rails 3 和 Heroku。

要在您的应用中实现此功能:

  1. 将 bin 目录复制到应用程序的根目录
  2. 将 wickedpdf.rb 复制到您的 config/initializers 目录中,以便您从 heroku 获得相同的错误
  3. 从 development.rb 复制“config.after_initialize do”语句,以便在开发中找到您的本地二进制文件。

【讨论】:

    【解决方案3】:

    使用 wkhtmltopdf-binary gem 将使 wicked_pdf 在所有环境中工作。这消除了在本地机器或任何生产服务器上手动安装 wkhtmltopdf 的需要。

    gem install wkhtmltopdf-binary

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-06
      • 1970-01-01
      • 2023-03-29
      • 2012-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-16
      相关资源
      最近更新 更多