My Rails 3.1应用程序正在使用PDFkit呈现特定页面,而我遇到(似乎是)一个常见问题,尝试生成pdf导致进程挂起。
我在stackoverflow上找到了这个解决方案:rails 3 and PDFkit。我在我的development.rb文件中添加了config.threadsafe!
条目并且 BUT ,它要求对于应用中的任何位置的每次更改,我都必须停止并重新启动服务器以查看我的更改。从工作流程中无法接受 - 我目前正在为PDF页面设置样式,这是一个非常缓慢的过程。
我还发现此处报告的问题相同:https://github.com/jdpace/PDFKit/issues/110,问题指向此解决方法:http://jguimont.com/post/2627758108/pdfkit-and-its-middleware-on-heroku。
ActionController::Base.asset_host = Proc.new { |source, request|
if request.env["REQUEST_PATH"].include? ".pdf"
"file://#{Rails.root.join('public')}"
else
"#{request.protocol}#{request.host_with_port}"
end
}
这样就无需重新启动更改,但现在加载pdf时没有从资产管道呈现的样式,因为它从公共目录中获取资源。如果我知道如何在公共文件夹中为pdf模板创建样式表,我想我可以使用这个解决方案。是否有人使用PDFKit和Rails3.1进行开发,这些都是同步的?
任何帮助将不胜感激! 谢谢! 贝
答案 0 :(得分:2)
以下是我正在使用的设置:
我使用rails server -p 3001 -e test
运行第二个rails服务器实例,它将处理PDF的资产。服务器将在它们进入时打印资产请求,因此我可以检查一切是否按预期工作。
我在asset_host
文件中使用了以下config/environments/development
:
config.action_controller.asset_host = ->(source, request = nil){
"http://localhost:3001" if request && request.env['REQUEST_PATH'].include?(".pdf")
}
答案 1 :(得分:1)
答案 2 :(得分:0)
Rails 3.1中的pdfkit存在问题。请参阅我对此相关问题的回答: