以下用于生成 PDF 的布局设置为使用 Rails 应用程序
assets/public
目录中的 css 文件,因为 wicked-pdf
gem 需要静态链接。它针对每个环境进行调整 - 本地主机、远程开发和远程生产服务器(后两个引用为应用程序提供服务的域)。
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset='utf-8' />
<%= wicked_pdf_stylesheet_link_tag "http://localhost:3000/assets/zapp_pdf.css" %>
<%= stylesheet_link_tag "http://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome-64.css", media: "all", "data-turbolinks-track" => true %>
<%= stylesheet_link_tag "http://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css", media: "all", "data-turbolinks-track" => true %>
</head>
<body>
<%= yield %>
</body>
</html>
最初,使用
wicked_pdf_stylesheet_link_tag Rails.application.assets.find_asset('zapp_pdf.css').digest_path
调用引用,但随后又退回到完全静态的非指纹 css 文件
在所有三种情况下产生的结果都不同(并且与 css 文件的两种语法一致)
• 在远程开发服务器上,文本出现在适当的位置,但没有背景
• 在远程制作时,会出现背景样式,但没有文本
• 在本地主机上,所有元素均按预期显示(基本上是两个图像!
目前还不清楚为什么会出现三种不同的渲染效果……除非在开发模式下有选择地调用其他资产。到底是怎么回事?如何使用 wicked-pdf 调试这种情况?
更新实验扩展到使用引用单独服务器上的静态文件,以免出现一些奇怪的缓存效果。行为与上面相同 - 即三个上下文之间的 CSS 解释是不同的。