0
我正在使用pdfkit gem,它使用wkhtmltopdf-binary gem中的wkhtmltopdf進行開發。爲什麼不能打包器在服務器上找到wkhtmltopdf
在服務器pdfkit失敗,錯誤
undefined method `chomp' for nil:NilClass
在
shared/bundle/ruby/2.1.0/gems/pdfkit-0.8.2/lib/pdfkit/configuration.rb:22:in `wkhtmltopdf'
失敗是
def wkhtmltopdf
@wkhtmltopdf ||= (defined?(Bundler::GemfileError) && File.exists?('Gemfile') ? `bundle exec which wkhtmltopdf` : `which wkhtmltopdf`).chomp
end
一些調試之後,該方法似乎`束EXEC其中wkhtmltopdf '從這個方法調用時返回空白。
當從應用程序根目錄的命令行稱它給了
/var/www/<app>/shared/bundle/ruby/2.1.0/bin/wkhtmltopdf
我試圖從初始化初始化@wkhtmltopdf的值如下
PDFKit.configure do |config|
if Rails.env.production?
config.wkhtmltopdf = "/var/www/<app>/shared/bundle/ruby/2.1.0/bin/wkhtmltopdf"
end
config.default_options = {
:page_size => 'A4',
}
end
但我仍然得到同樣的錯誤。即它仍然試圖運行'which'命令並且失敗。
做得好爲察覺此解決辦法。我必須硬編碼路徑,而不是使用'which wkhtmltopdf',因爲這也從Ruby代碼返回nil。 (儘管在命令行上工作得很好)。我想了解爲什麼會發生這種情況... – giorgio