在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' }
我对我做错了什么感到疑惑,以及当邮件不起作用时常规视图的工作原理。
非常感谢任何帮助!
答案 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 %>