Ruby on rails Rails wicked_pdf(wkhtmltopdf)生产环境中的小图像和错误

Ruby on rails Rails wicked_pdf(wkhtmltopdf)生产环境中的小图像和错误,ruby-on-rails,pdf,ubuntu,wkhtmltopdf,wicked-pdf,Ruby On Rails,Pdf,Ubuntu,Wkhtmltopdf,Wicked Pdf,出于某种原因,我的Rails应用程序使用wicked_pdf gem生成pdf文件(使用软件wkhtmltopdf的gem)正在开发和生产中生成不同的pdf 这就是它在开发中的输出方式,几乎是好的:。 这是如何在生产中输出的,有很多错误: 该系统的真正区别在于,在开发过程中,我在OSX中使用了wkhtmltopdf 0.9.9。在生产中,我在Ubuntu中使用wkhtmltopdf 0.9.9。一旦Ubuntu服务器14.04不使用X服务器(wkhtmltopdf需要它),我就安装了Xorg并制

出于某种原因,我的Rails应用程序使用wicked_pdf gem生成pdf文件(使用软件wkhtmltopdf的gem)正在开发和生产中生成不同的pdf

这就是它在开发中的输出方式,几乎是好的:。
这是如何在生产中输出的,有很多错误:

该系统的真正区别在于,在开发过程中,我在OSX中使用了wkhtmltopdf 0.9.9。在生产中,我在Ubuntu中使用wkhtmltopdf 0.9.9。一旦Ubuntu服务器14.04不使用X服务器(wkhtmltopdf需要它),我就安装了Xorg并制作了以下包装:

/usr/bin/wkhtmltopdf.sh

xvfb-run -a -s "-screen 0 1024x768x32" wkhtmltopdf "$@"
以及Rails初始值设定项中的以下代码:

/config/initializers/wicked_pdf.rb

if Rails.env.production?
  WickedPdf.config = {
    :exe_path => '/usr/bin/wkhtmltopdf.sh'
  }
else
  WickedPdf.config = {
    :exe_path => '/usr/local/bin/wkhtmltopdf'
  }
end
这就是我呈现PDF的控制器代码:

render :pdf => "curriculum",
        :template => 'kurrics/kurrics.pdf.erb',
        :margin => { :top => 4, :bottom => 4, :left => 0, :right => 0 },
        :encoding => "utf8",
        :print_media_type => true
如果需要,PDF模板布局:


我迷路了,有什么提示吗?

你的问题可能已经解决了。但这个答案将有助于其他人

作为pdf示例,问题在于外部css和背景图像。我也有同样的问题,我在pdf模板中添加了内部css行,如下所示。(请看这个 )

背景图像:url('file://');
此方法适用于开发和生产环境


最好将单独的css文件用于pdf。这将加快您的pdf生成,并降低服务器成本。另外,避免将不需要的css文件和图像加载到pdf布局。

第13行应该有一个包含域的完全限定路径,但最好是一个完整的文件系统路径。也许你可以把它拉到你的应用程序中?和第34行一样,你能把它放到你的应用程序中,让服务器不必每次都通过远程HTTP调用来下载它(可能会超时)。同样的wkhtmltopdf版本吗?有时,不同回购协议的版本不同。
background-image: url('file://<%= Rails.root.join('app/assets/images/colorful-triangles.jpg') %>');