试图在邮件程序呈现的视图中获取图像的完整 URL。
Rails 3+ 中是否有适当的方法来获取 Sprockets 生成的完整 url?
我知道请求对象 hack,但由于邮件程序是在 rake 任务中调用的,因此请求数据显然不可用。
我正在运行 Rails 4 beta1(边缘)
试图在邮件程序呈现的视图中获取图像的完整 URL。
Rails 3+ 中是否有适当的方法来获取 Sprockets 生成的完整 url?
我知道请求对象 hack,但由于邮件程序是在 rake 任务中调用的,因此请求数据显然不可用。
我正在运行 Rails 4 beta1(边缘)
在 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 中有协议,那么你会得到类似的 url http://http://yourdomain.com
,如果你在 action_mailer.asset_host 中没有协议,则它不会被识别为有效的 URL因为它没有针对内部 Rails 正则表达式进行正确验证。
然后,您可以在邮件模板中使用以下内容:
<%= image_url('mail/awesome.gif', only_path: false) %>