【问题标题】:How do you get the full image url for emails with asset pipeline and Heroku?您如何获得带有资产管道和 Heroku 的电子邮件的完整图像 URL?
【发布时间】:2012-11-01 23:16:45
【问题描述】:

我正在尝试为包含完整网址的图像的电子邮件呈现 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" }

但这似乎不起作用。

我需要怎么做才能在电子邮件中正确呈现带有完整网址的图像?

【问题讨论】:

  • 能否也向我们展示模板的相关部分?
  • 添加了来自电子邮件模板的示例。

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


【解决方案1】:

尝试使用

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

【讨论】:

    【解决方案2】:

    在rails4中

    config/environments 文件夹,你可能有三个环境特定的文件,你可以把这个配置来设置你的域

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2012-06-28
        • 1970-01-01
        • 1970-01-01
        • 2015-10-10
        • 2013-07-04
        • 2013-06-26
        • 1970-01-01
        • 1970-01-01
        • 2012-07-26
        相关资源
        最近更新 更多