代码之家  ›  专栏  ›  技术社区  ›  paul.ago

Rails 4:获取Sprockets在生产环境中生成的完整url图像(在rake任务中)

  •  3
  • paul.ago  · 技术社区  · 13 年前

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

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

    我知道请求对象黑客,但由于调用了mailer 在rake任务中 , 显然,请求数据不可用。

    我正在运行Rails 4测试版1(边缘)

    1 回复  |  直到 13 年前
        1
  •  4
  •   Chris Aitchison    13 年前

    在Rails4中,您需要在产品中包含以下内容。rb

    config.action_controller.asset_host = 'yourdomain.com'
    config.action_mailer.asset_host = 'http://yourdomain.com'
    

    有一个带有协议(http),另一个没有协议是经过深思熟虑的。也许在Rails4推出测试版之前会有所不同,但如果你在action_controller.asset_host中有协议,那么你会得到这样的url http://http://yourdomain.com ,如果action_mailer.asset_host中没有该协议,则它不会被识别为有效的URL,因为它不能根据内部Rails Regex进行正确验证。

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

    <%= image_url('mail/awesome.gif', only_path: false) %>