我试图从设计Mailer模板中调用image_tag "image.jpg"
,但由于发送了一封电子邮件,图片的路径在电子邮件中显示为已损坏。 (不包括绝对网址)。
解决这个问题的最佳方法是什么?
答案 0 :(得分:2)
在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即可访问您的图片。
答案 1 :(得分:1)
您可以设置邮件程序的:host属性,与构建链接的方式相同
要在全局范围内执行此操作,您可以在环境配置中执行此操作
config.action_mailer.default_url_options = { :host => "example.com" }
看看http://api.rubyonrails.org/classes/ActionMailer/Base.html
了解更多信息