3

试图在邮件程序呈现的视图中获取图像的完整 URL。

Rails 3+ 中是否有适当的方法来获取 Sprockets 生成的完整 url?

我知道请求对象 hack,但由于邮件程序是在 rake 任务中调用的,因此请求数据显然不可用。

我正在运行 Rails 4 beta1(边缘)

4

1 回答 1

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 中有协议,那么你会得到类似的 url http://http://yourdomain.com,如果你在 action_mailer.asset_host 中没有协议,则它不会被识别为有效的 URL因为它没有针对内部 Rails 正则表达式进行正确验证。

然后,您可以在邮件模板中使用以下内容:

<%= image_url('mail/awesome.gif', only_path: false) %>
于 2013-03-31T07:43:04.947 回答