我试图image_tag "image.jpg"
从设计 Mailer 模板调用,但由于它发送了一封电子邮件,因此图像的路径在电子邮件中将显示为损坏。(不包括绝对网址)。
解决这个问题的最佳主意是什么?
我试图image_tag "image.jpg"
从设计 Mailer 模板调用,但由于它发送了一封电子邮件,因此图像的路径在电子邮件中将显示为损坏。(不包括绝对网址)。
解决这个问题的最佳主意是什么?
在 Rails 4 中,最简单的方法是将以下内容添加到:
配置/环境/development.rb
config.action_mailer.asset_host = " http://localhost:3000 "
配置/环境/production.rb
config.action_mailer.asset_host = " http://yourdomain.com "
由于电子邮件不是托管在您的 Web 服务器上的页面,并且仅由您的应用程序中继到 smtp 或其他邮件服务器,因此这基本上会告诉 Rails 服务器您在哪里托管邮件资产。在大多数情况下,您希望从 rails 提供邮件资产,特别是从 rails 使用的相同资产路径。
这样做,您只需使用 image_tag 即可访问您的图像。
您可以为您的邮件设置 :host 属性,与构建链接的方式相同
要在全局范围内执行此操作,您可以在环境配置中执行此操作
config.action_mailer.default_url_options = { :host => "example.com" }
看看http://api.rubyonrails.org/classes/ActionMailer/Base.html
了解更多信息