Rails 使用 Wicked_pdf gem 和 wkhtmltopdf-binary-edge 时应用挂起
Rails app hangs when using Wicked_pdf gem and wkhtmltopdf-binary-edge
我正在尝试使用 `'wicked_pdf' gem 打印我的视图的 PDF。这是我第一次使用这个gem。我已经阅读了文档并四处搜索,我还在 Stack Overflow 上发现了一些类似的问题,但似乎没有什么能解决问题。
我已经验证了二进制文件(见下面的编辑)它们工作正常,所以问题不存在。
当运行 rails s
(见底部的编辑)
时,我在终端中发现两条奇怪的线
我连续三天都在寻找这个问题的解决方案,但无法解决这个问题。
我是不是遗漏了什么?
服务器不断挂起并在终端中显示该输出
Rendered pages/partials/_travel_part.html.erb (36.6ms)
Rendered users/show.html.erb within layouts/application (531.7ms)
Rendered layouts/_navbar.html.erb (2.6ms)
Rendered shared/_footer.html.erb (0.8ms)
Completed 200 OK in 1640ms (Views: 1115.4ms | ActiveRecord: 136.0ms)
"***************[\"/usr/local/bin/wkhtmltopdf\", \"-q\", \"file:////var/folders/sm/zwm8cy0x73qb6q1pq22r4bjh0000gn/T/wicked_pdf20160913-35465-hkw9b8.html\", \"/var/folders/sm/zwm8cy0x73qb6q1pq22r4bjh0000gn/T/wicked_pdf_generated_file20160913-35465-10go9dt.pdf\"]***************"
以下是我目前的资料。
我想打印 views/users/show.html.erb
所以在 users_controller.rb
我在 show
方法
中有这段代码
def show
@user = User.find(params[:id])
@users = User.order('created_at DESC').paginate(page: params[:page], per_page: 30)
@paper = current_user.papers.build
@electro = current_user.electros.build
@hwater = current_user.hwaters.build
@cleaning = current_user.cleanings.build
@transport = current_user.transports.build
@papers = current_user.papers
respond_to do |format|
format.html {render layout:'application'}
format.pdf {render pdf:"test",javascript_delay:2000,
layout:'application',template:'users/show.pdf.erb'}
end
end
在 application.html.erb
我在 head
使用 wicked pdf helper
<%= wicked_pdf_stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= wicked_pdf_javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= javascript_include_tag "http://www.google.com/jsapi"%>
<%= wicked_pdf_javascript_include_tag 'chartkick'%>
<%= csrf_meta_tags %>
views/users/show.html.erb
中的按钮是
<%= link_to 'Download Pdf', user_path(current_user, format: :pdf) %>
在 config/initializers/mime_types.rb
我有这个代码
Mime::Type.register "application/pdf", :pdf
在 config/initializers/wicked_pdf.rb
我有这个代码
WickedPdf.config = {
#:wkhtmltopdf => '/usr/local/bin/wkhtmltopdf',
#:layout => "pdf.html",
:exe_path => '/usr/local/bin/wkhtmltopdf'
}
在 gemfile.rb
我有那两个 gems:
gem 'wicked_pdf', '~> 1.0', '>= 1.0.6'
gem 'wkhtmltopdf-binary-edge'
编辑*
好的,我已经通过在终端中输入 wkhtmltopdf google.com google
验证了二进制文件工作正常。所以我的结论是问题出在 wkhtmltopdf
之外的其他地方。但是哪里?我还是找不到...
(AddingWickedPdf) $ wkhtmltopdf google.com google
Loading pages (1/6)
Counting pages (2/6)
Resolving links (4/6)
Loading headers and footers (5/6)
Printing pages (6/6)
Done
(AddingWickedPdf) $
另一个编辑
我在前一天晚上早些时候 rails s
启动我的服务器时注意到终端中的这一行,我不知道它是什么意思,但我确定它与应用程序挂起有关渲染 pdf:
/Users/dadi/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/actionpack-4.2.5/lib/action_dispatch/http/mime_type.rb:163: warning: already initialized constant Mime::PDF
/Users/dadi/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/actionpack- 4.2.5/lib/action_dispatch/http/mime_type.rb:163: warning: previous definition of PDF was here
如果有人能看看这个并指导我走上正确的道路,那就太好了。
提前致谢
DH
答案最初发布于此:
How rails resolve multi-requests at the same time?
随后在此处针对此问题进行了改编(最后回答):
PDFkit hangs when generating a pdf with an image
我正在尝试使用 `'wicked_pdf' gem 打印我的视图的 PDF。这是我第一次使用这个gem。我已经阅读了文档并四处搜索,我还在 Stack Overflow 上发现了一些类似的问题,但似乎没有什么能解决问题。
我已经验证了二进制文件(见下面的编辑)它们工作正常,所以问题不存在。
当运行 rails s
(见底部的编辑)
我连续三天都在寻找这个问题的解决方案,但无法解决这个问题。
我是不是遗漏了什么?
服务器不断挂起并在终端中显示该输出
Rendered pages/partials/_travel_part.html.erb (36.6ms)
Rendered users/show.html.erb within layouts/application (531.7ms)
Rendered layouts/_navbar.html.erb (2.6ms)
Rendered shared/_footer.html.erb (0.8ms)
Completed 200 OK in 1640ms (Views: 1115.4ms | ActiveRecord: 136.0ms)
"***************[\"/usr/local/bin/wkhtmltopdf\", \"-q\", \"file:////var/folders/sm/zwm8cy0x73qb6q1pq22r4bjh0000gn/T/wicked_pdf20160913-35465-hkw9b8.html\", \"/var/folders/sm/zwm8cy0x73qb6q1pq22r4bjh0000gn/T/wicked_pdf_generated_file20160913-35465-10go9dt.pdf\"]***************"
以下是我目前的资料。
我想打印 views/users/show.html.erb
所以在 users_controller.rb
我在 show
方法
def show
@user = User.find(params[:id])
@users = User.order('created_at DESC').paginate(page: params[:page], per_page: 30)
@paper = current_user.papers.build
@electro = current_user.electros.build
@hwater = current_user.hwaters.build
@cleaning = current_user.cleanings.build
@transport = current_user.transports.build
@papers = current_user.papers
respond_to do |format|
format.html {render layout:'application'}
format.pdf {render pdf:"test",javascript_delay:2000,
layout:'application',template:'users/show.pdf.erb'}
end
end
在 application.html.erb
我在 head
使用 wicked pdf helper
<%= wicked_pdf_stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= wicked_pdf_javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= javascript_include_tag "http://www.google.com/jsapi"%>
<%= wicked_pdf_javascript_include_tag 'chartkick'%>
<%= csrf_meta_tags %>
views/users/show.html.erb
中的按钮是
<%= link_to 'Download Pdf', user_path(current_user, format: :pdf) %>
在 config/initializers/mime_types.rb
我有这个代码
Mime::Type.register "application/pdf", :pdf
在 config/initializers/wicked_pdf.rb
我有这个代码
WickedPdf.config = {
#:wkhtmltopdf => '/usr/local/bin/wkhtmltopdf',
#:layout => "pdf.html",
:exe_path => '/usr/local/bin/wkhtmltopdf'
}
在 gemfile.rb
我有那两个 gems:
gem 'wicked_pdf', '~> 1.0', '>= 1.0.6'
gem 'wkhtmltopdf-binary-edge'
编辑*
好的,我已经通过在终端中输入 wkhtmltopdf google.com google
验证了二进制文件工作正常。所以我的结论是问题出在 wkhtmltopdf
之外的其他地方。但是哪里?我还是找不到...
(AddingWickedPdf) $ wkhtmltopdf google.com google
Loading pages (1/6)
Counting pages (2/6)
Resolving links (4/6)
Loading headers and footers (5/6)
Printing pages (6/6)
Done
(AddingWickedPdf) $
另一个编辑
我在前一天晚上早些时候 rails s
启动我的服务器时注意到终端中的这一行,我不知道它是什么意思,但我确定它与应用程序挂起有关渲染 pdf:
/Users/dadi/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/actionpack-4.2.5/lib/action_dispatch/http/mime_type.rb:163: warning: already initialized constant Mime::PDF
/Users/dadi/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/actionpack- 4.2.5/lib/action_dispatch/http/mime_type.rb:163: warning: previous definition of PDF was here
如果有人能看看这个并指导我走上正确的道路,那就太好了。
提前致谢 DH
答案最初发布于此:
How rails resolve multi-requests at the same time?
随后在此处针对此问题进行了改编(最后回答):
PDFkit hangs when generating a pdf with an image