3

我试图image_tag "image.jpg"从设计 Mailer 模板调用,但由于它发送了一封电子邮件,因此图像的路径在电子邮件中将显示为损坏。(不包括绝对网址)。

解决这个问题的最佳主意是什么?

4

2 回答 2

2

在 Rails 4 中,最简单的方法是将以下内容添加到:

  1. 配置/环境/development.rb

    config.action_mailer.asset_host = " http://localhost:3000 "

  2. 配置/环境/production.rb

    config.action_mailer.asset_host = " http://yourdomain.com "

由于电子邮件不是托管在您的 Web 服务器上的页面,并且仅由您的应用程序中继到 smtp 或其他邮件服务器,因此这基本上会告诉 Rails 服务器您在哪里托管邮件资产。在大多数情况下,您希望从 rails 提供邮件资产,特别是从 rails 使用的相同资产路径。

这样做,您只需使用 image_tag 即可访问您的图像。

于 2015-07-03T04:22:57.187 回答
1

您可以为您的邮件设置 :host 属性,与构建链接的方式相同

要在全局范围内执行此操作,您可以在环境配置中执行此操作

config.action_mailer.default_url_options = { :host => "example.com" }

看看http://api.rubyonrails.org/classes/ActionMailer/Base.html

了解更多信息

于 2012-05-07T21:55:35.490 回答