0

我已经看到了许多关闭的问题,但一直无法找到解决我的问题的解决方案。我将 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 图像文件存在。

如果我删除该行,它会起作用(减去徽标)。

请注意,这不仅对虾来说是失败的,即使我尝试使用内联图像作为电子邮件也是如此。

请帮忙,我把头发扯掉了!

补充:从公共工程中服务-但这不是我的首选解决方案。

4

2 回答 2

0

尝试将此添加到: rails.root/config/environments/productiton.rb

  config.serve_static_assets = true
  config.assets.compile = true
于 2013-08-20T12:09:15.573 回答
0

两种方法的组合对我有用:

image "#{Rails.root}/app/assets#{ActionController::Base.helpers.asset_path('images/logo-print.png')}"

于 2015-03-08T11:13:34.683 回答