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