2

我正在为我的应用程序完成一个 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 存储库中的示例添加一个初始化程序并手动将 wkhtmltopdf bin 文件上传到 heroku ,但我仍然无法让它工作。

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

4

3 回答 3

2

我让它工作。经过一番搜索,我找到了一个 github 存储库,它实现了一个可与 Rails 3 和 Heroku 一起使用的wicked_pdf 初始化程序。

要在您的应用中使用此功能:

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

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

于 2011-10-24T03:41:39.170 回答
0

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

gem install wkhtmltopdf-binary

于 2012-12-18T06:18:43.630 回答