我的 Rails 3.1 应用程序正在使用 PDFkit 来渲染特定页面,并且我遇到了(看起来像是)一个常见问题:尝试生成 pdf 导致进程挂起。
我在 stackoverflow 上找到了这个解决方案:Rails 3 和 PDFkit https://stackoverflow.com/questions/7531005/rails-3-and-pdfkit。我在哪里添加一个config.threadsafe!
我的development.rb 文件中的条目,这有效BUT它要求对于应用程序中任何位置的每次更改,我都必须停止并重新启动服务器才能查看我的更改。工作流程中不可接受 - 我目前正在设置 PDF 页面的样式,而且必须执行此操作的过程非常缓慢。
我还发现这里报告了同样的问题:https://github.com/jdpace/PDFKit/issues/110 https://github.com/jdpace/PDFKit/issues/110,问题指向此解决方法:http://jguimont.com/post/2627758108/pdfkit-and-its-middleware-on-heroku 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
}
这消除了重新启动更改的需要,BUT现在,当我加载 pdf 时,它没有从资产管道渲染的样式,因为它从公共目录中获取资产。我想如果我知道如何为公共文件夹中的 pdf 模板创建样式表,我可以使用此解决方案。是否有人使用 PDFKit 和 Rails3.1 进行开发,并且所有这些都同步工作?
任何帮助将不胜感激!
谢谢!
托尼
这是我正在使用的设置:
我运行 Rails 服务器的第二个实例rails server -p 3001 -e test
它将处理我的 PDF 资源。服务器将在资产请求传入时打印它们,因此我可以检查一切是否按预期运行。
-
我用以下asset_host
in my config/environments/development
file:
config.action_controller.asset_host = ->(source, request = nil){
"http://localhost:3001" if request && request.env['REQUEST_PATH'].include?(".pdf")
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)