Rails 3.1资产管道与PDFKit

lun*_*die 8 ruby-on-rails pdfkit asset-pipeline

我正在使用带有rails 3.1的PDFkit.在过去,我能够使用render_to_string函数并从该字符串创建pdf.然后我按如下方式添加样式表.我的问题是我不知道如何从资产管道中访问它们.(这就是我在rails 3.0中的表现)

html_string = render_to_string(:template => "/faxes/show.html.erb", :layout => 'trade_request')
kit = PDFKit.new(html_string, :page_size => 'Letter')
kit.stylesheets << "#{Rails.root.to_s}/public/stylesheets/trade_request.css"
Run Code Online (Sandbox Code Playgroud)

所以我的问题是如何通过资产管道直接从我的控制器访问我的css文件?

我知道我可以使用带有PDFkit的Rack Middleware将pdf呈现给浏览器,但在这种情况下,我需要将pdf发送到第三方传真服务.

谢谢你的帮助.

瑞安

Ric*_*lse 0

在 Rails 3.1.1 中,样式表被写入 /public/assets 中,无论是否带有摘要指纹。

这意味着您应该能够仅通过更改代码中的路径来引用这些文件。

但有一个问题:如果 CSS 清单中未引用 PDF 表,则必须将其添加到预编译配置中:

config.assets.precompile += ['trade_request.css']

这告诉 sprocket 自行编译该文件。

作为(更好的)替代方案,请查看 asset_path 帮助程序是否在您的代码中工作。这将在开发和生产中引用正确的文件。