0

我已经进行了数小时的研究,试图让 PDFKit 在我的生产环境中工作。在开发中一切正常,并且“有点”在我的生产服务器上工作。

  • 我正在使用 Nginx/Passenger 运行 64 位 Ubuntu 服务器。
  • 我可以使用 - 从我的网络根目录成功创建一个 pdf wkhtmltopdf google.com public/test5.pdf- 所以我知道 wkhtmltopdf 已安装并正在工作
  • rails console我可以使用 PDFKit 使用我可以运行的地方成功创建 PDF -kit = PDFKit.new('http://google.com')所以file = kit.to_file('public/test.pdf')至少在 rails 控制台中我知道 PDFKit 能够成功运行

但是,这在实际网站上不起作用。当我访问 URL(在开发模式下工作)时,http://staging.myapp.com/tours/5/print_tour.pdf我收到“我们很抱歉,但出了点问题”错误。我的乘客错误日志仅显示:

  • 机架:/home/deploy/myapp/current:没有这样的文件或目录 - bundle exec which wkhtmltopdf
  • 但是,我可以bundle exec which wkhtmltopdf从我的网络根目录运行良好吗?

我很困惑,因为 wkhtmltopdf 在命令行中运行良好,在 rails 控制台中的 PDFKit 也是如此,但是在从 Nginx/Passenger 提供页面时不知何故出现了问题。帮助!:-)

4

1 回答 1

1

which wkhtmltopdf 返回什么路径,它与您的开发环境中的路径不同?

PDFkit 期望 wkhtmlpdf 位于 /usr/local/bin 中,因此如果您尚未将 wkhtmlpdf 二进制文件安装到该位置,请确保您在初始化程序中指定了路径,如下所示:

# config/initializers/pdfkit.rb
PDFKit.configure do |config|
  config.wkhtmltopdf = '/path/to/wkhtmltopdf'
  # config.root_url = "http://staging.myapp.com" # Use only if your external hostname is unavailable on the server.
end

如果您的问题与 PDFkit 尝试从服务器上的错误路径调用 wkhtmltopdf 无关,您是否尝试过查看像 wicked_pdf 这样的其他 gem 是否能够正确使用 wkhtmltopdf?

于 2013-07-31T01:11:37.903 回答