我正在使用带有rails 3.2项目和资产管道的wicked_pdf插件。我想在pdf.css.erb中定义我的图片
这是我的控制器代码,可以使用布局文件:
respond_to do |format|
format.html
format.pdf do
render :pdf => "Cars.pdf",
:template => "reports/cars.html.haml",
:page_size => "A4",
:layout => "pdf.html",
:handlers => [:haml]
end
end
这是我的布局文件,其中包含我的pdf.css.erb文件。
!!!
%html
%head
= wicked_pdf_stylesheet_link_tag "pdf"
= csrf_meta_tag
%body
.contentbg
.logo
.content= yield
最后这是我的CSS
.logo {
background: wicked_pdf_image_tag "logo.jpg";
width: 100px;
height: 80px;
}
这找不到logo.jpg。如果我将wicked_pdf_image_tag“logo.jpg”行直接放在我的pdf.html.haml模板布局文件中,那么它会在生成的pdf中呈现我的徽标。
是否可以在css.erb文件中使用wicked_pdf_image_tag帮助器?
答案 0 :(得分:1)
这不会在css.erb文件中起作用,首先是因为它缺少erb标记,但主要是因为wicked_pdf_image_tag会扩展到这个:
.logo {
background: <img src="file://foo/bar/public/images/logo.jpg">;
}
哪个css无效。 最好的选择是手工构建它,如下所示:
.logo {
background: url(<%= Rails.root.join('assets','images','logo.jpg').to_s %>);
}
拥有直接文件访问路径的原因是wkhtmltopdf不必发出Web请求来获取资产,因此加载速度更快。