【问题标题】:Wicked PDF generation error in production mode生产模式下的邪恶 PDF 生成错误
【发布时间】:2012-09-19 13:07:24
【问题描述】:

我在我的 Rails 应用程序中使用 WickedPDF 来生成 PDF 文件。它在我的本地机器上运行良好。在生产中,我在日志中看到以下错误:

Started GET "/financieel/facturen/2.pdf" for 81.205.74.167 at 2012-09-19 14:58:37 +0200
  Processing by InvoicesController#show as PDF
  Parameters: {"id"=>"2"}
***************WICKED***************
Rendered invoices/show.pdf.haml (6.9ms)
Completed 500 Internal Server Error in 38ms

NoMethodError (undefined method `chomp' for nil:NilClass):
  app/controllers/invoices_controller.rb:22:in `block (2 levels) in show'
  app/controllers/invoices_controller.rb:17:in `show'

invoices_controller.rb 没有什么异常:

format.pdf do
  render pdf: 'factuur'
end

【问题讨论】:

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


    【解决方案1】:

    这行,wicked_pdf 试图猜测您的 wkhtmltopdf 二进制文件在哪里,这可能会导致您的麻烦:https://github.com/mileszs/wicked_pdf/blob/master/lib/wicked_pdf.rb#L207

    如果 wkhtmltopdf 实际安装在服务器上,最好的办法可能是在初始化程序中专门设置 wkhtmltopdf 的路径,如下所示:

    # config/initializers/wicked_pdf.rb
    WickedPdf.config = { :exe_path => '/opt/bin/wkthmltopdf' } # or wherever it actually is
    

    【讨论】:

    • 默认情况下,WickedPDF 正在搜索 /usr/local/bin/wkhtmltopdf。我将它安装在 /usr/bin/wkhtmltopdf 中并设置了指向 /usr/local/bin/wkhtmltopdf 的符号链接。此外,从 rails 控制台生成 PDF 文件效果很好。
    • 现在已修复!我从源代码编译它。显然,他的 git 存储库中的最新代码有效。将 exe_path 更改为新的二进制文件可以修复它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-12
    • 2023-04-04
    • 2014-06-10
    • 1970-01-01
    • 1970-01-01
    • 2018-09-06
    相关资源
    最近更新 更多