2011-10-24 32 views
2

我完成我的應用程序,它完美地工作在開發模式,但上傳到Heroku的時候,這是行不通的一個PDF報告實施工作,並且我收到以下錯誤:Wicked_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' 

我嘗試添加一個初始化程序,並手動將wkhtmltopdf bin文件上傳到heroku,然後按照github repository中的示例進行操作,但仍然無法使其工作。

我似乎無法掌握Heroku無法正常工作的確切原因,任何人都可以幫我一把嗎?提前致謝。

+0

我記錄了徹底的答案,這在這裏:http://stackoverflow.com/a/16577677/307308 – scarver2

回答

2

我得到它的工作。經過一番搜索之後,我發現一個github回購實現了一個與Rails 3和Heroku兼容的wicked_pdf initializer

爲了使這項工作在你的應用程序:

  1. 複製的bin目錄添加到應用程序
  2. 複製wickedpdf.rb到你的配置/初始化的根目錄下,這樣你得到同樣的錯誤heroku
  3. 從development.rb複製「config.after_initialize do」語句,以便在開發過程中找到本地二進制文件。
0

Heroku是一個只讀文件系統,您試圖在該系統上創建一個新文件。你不可以做這個。

+0

嘿瑞安,檢查我的回答,我得到它的工作!我沒有試圖寫入到heroku的文件系統,因爲我正在向respond_to塊中的用戶顯示pdf。無論如何感謝您的回答! – bruno077

+0

這些天事情已經發生了一些變化--tmp在Heroku上一直是可寫的,而在雪松堆棧上它完全可寫,而不是跨越dynos持久化。 –

0

使用wkhtmltopdf-binary寶石將使wicked_pdf在所有環境中都能正常工作。這消除了在本地機器或任何生產服務器上手動安裝wkhtmltopdf的需要。

gem install wkhtmltopdf-binary