【发布时间】:2013-03-26 18:41:04
【问题描述】:
试图在邮件程序呈现的视图中获取图像的完整 URL。
Rails 3+ 中是否有适当的方法来获取 Sprockets 生成的完整 url?
我知道请求对象 hack,但由于邮件程序是在 在 rake 任务中调用, 显然,请求数据不可用。
我正在运行 Rails 4 beta1(边缘)
【问题讨论】:
标签: ruby-on-rails ruby asset-pipeline ruby-on-rails-4
试图在邮件程序呈现的视图中获取图像的完整 URL。
Rails 3+ 中是否有适当的方法来获取 Sprockets 生成的完整 url?
我知道请求对象 hack,但由于邮件程序是在 在 rake 任务中调用, 显然,请求数据不可用。
我正在运行 Rails 4 beta1(边缘)
【问题讨论】:
标签: ruby-on-rails ruby asset-pipeline ruby-on-rails-4
在 Rails 4 中,您需要在 production.rb 中包含以下内容
config.action_controller.asset_host = 'yourdomain.com'
config.action_mailer.asset_host = 'http://yourdomain.com'
有一个协议(http)和一个没有协议是故意的。也许在 Rails 4 推出 beta 版之前会有所不同,但如果你在 action_controller.asset_host 中有协议,那么你会得到像 http://http://yourdomain.com 这样的 url,如果你在 action_mailer.asset_host 中没有协议,则不会被识别为一个有效的 URL,因为它没有针对内部 Rails 正则表达式进行正确验证。
然后您可以在邮件模板中使用以下内容:
<%= image_url('mail/awesome.gif', only_path: false) %>
【讨论】: