如何获得具有资产管道和Heroku的电子邮件的完整图像URL?

时间:2012-11-01 23:16:46

标签: ruby-on-rails email heroku asset-pipeline actionmailer

我正在尝试为包含带有完整网址的图片的电子邮件呈现HTML。我正在使用Rails 3.2(资产管道)和Heroku。我不知道我的问题在哪里。

我将此方法添加到我的应用程序助手:

def image_url(source)
  "#{root_url[0..-2]}#{image_path(source)}"
end

在email.html.erb中:

<img src="<%= image_url("images/email/logo.gif") %>" width="102" height="40">

但是电子邮件导致了类似的内容:

http://assets/email/logo-64cb67810752117f1de94cbb1c57a146.png

我认为这意味着我的root_url在Heroku上是空白的。我试过在我的production.rb文件中设置它,如下所示:

config.action_controller.default_url_options = { host: "www.domainname.com" }

但这似乎不起作用。

在电子邮件中使用完整网址正确呈现图片需要做些什么?

3 个答案:

答案 0 :(得分:2)

尝试使用

Rails.application.routes.default_url_options[:host]= 'www.domainname.com'

答案 1 :(得分:1)

在rails4中

config / environments文件夹,您可能有三个特定于环境的文件,您可以将此配置设置为您的域

config.action_mailer.asset_host = 'http://www.yourdomain.com'

答案 2 :(得分:0)

您也可以这样做:image_url('file.png', host: 'http://example.com')