我已经看到了许多关闭的问题,但一直无法找到解决我的问题的解决方案。我将 Ruby 1.9.3 与 Rails 3.2.13 一起使用。
我正在使用 Prawn 生成 PDF,并出现一个徽标。在开发环境中发现logo没有问题,但在生产环境中失败,在Heroku上。
在我的控制器中,我有:
def generate_risk_pdf(risk)
Prawn::Document.new do
image "#{Rails.root}/app/assets/images/logo-print.png", :scale => 0.75 if Rails.env.development?
image "#{ActionController::Base.helpers.asset_path('logo-print.png')}", :scale => 0.75 if Rails.env.production?
move_down 2
formatted_text [{:text => Exercise Australia", :styles => [:bold], :size => 20}]
font_size 6
bounding_box([bounds.right - 150, bounds.bottom], :width => 240, :height => 20) do
text "Copyright: Exercise Australia, #{Date.today.year}"
end
end.render
end
Heroku 日志有
ArgumentError (/assets/logo-print-5b6da7bd4012d953bc1bc749cf934d91.png 未找到): app/controllers/single_entries_controller.rb:309:in `block in generate_risk_pdf'
哪个对应于上面的 Rails.env.production 行?
如果我将 URL 附加到 /assets/logo-print-5b6da7bd4012d953bc1bc749cf934d91.png 图像文件存在。
如果我删除该行,它会起作用(减去徽标)。
请注意,这不仅对虾来说是失败的,即使我尝试使用内联图像作为电子邮件也是如此。
请帮忙,我把头发扯掉了!
补充:从公共工程中服务-但这不是我的首选解决方案。