环境与WickedPDF和Heroku冲突

时间:2012-06-12 22:08:41

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

我正在使用WickedPDF,我基本上有两个包含二进制文件的宝石:

gem "wkhtmltopdf-heroku", "1.0.0"
gem "wkhtmltopdf-binary", "0.9.5.3"

第一个应该只用于生产,第二个用于开发。如果我有我的Gemfile,那么部署到Heroku就不起作用了:

group :development do
  gem "wkhtmltopdf-binary", "0.9.5.3"
end

group :production do
  gem "wkhtmltopdf-heroku", "1.0.0"
end

如果我喜欢它,它也不起作用:

group :production do
  gem "wkhtmltopdf-heroku", "1.0.0"
end

如果我没有组,它就可以正常工作。就像:

gem "wkhtmltopdf-heroku", "1.0.0"

我得到的错误是:

RuntimeError:wkhtmltopdf未知的位置

为什么会这样?为什么Heroku没有使用生产组?

1 个答案:

答案 0 :(得分:2)

WickedPdf试图找出wkhtmltopdf二进制文件所在的位置,但在某些系统(特别是共享服务器)上可能会遇到困难。

您可能需要在初始化程序中手动设置它,如下所示:

bin_location = case Rails.env
  when 'production' then "/wherever/your/binary/is/bin/wkhtmltopdf"
  when 'development' then "/local/path/to/wkthmltopdf"
  else `which wkhtmltopdf`
end
WickedPdf.config = { :exe_path => bin_location }