Rails 4链接到邮件中的公共静态文件

时间:2014-03-17 15:18:50

标签: ruby-on-rails ruby actionmailer public

在Rails 4应用程序中,我有一个存储在/public目录中的静态文件。我有一个视图部分链接到该文件,如下所示:

<%= "Please download the #{link_to 'Static file', '/static_filename.docx'}".html_safe %>

partial用于常规视图和邮件程序视图。在常规视图中,这非常有效,链接URL如下所示:

www.example.com/static_filename.docx

但是在邮件程序中,网址就像这样,错过了主机名:

/static_filename.docx

尽管事实上我已经注意在config/environments/production.rb中配置默认​​网址:

  config.action_mailer.default_url_options = { :host => 'http://www.example.com' }

我对我做错了什么感到疑惑,以及当邮件不起作用时常规视图的工作原理。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

您的资产主机应该是行动邮件

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

其次,在资产上使用asset_path()包装器,即

 <%= "Please download the #{link_to 'Static file', asset_path('/static_filename.docx')}".html_safe %>