【问题标题】:Rails 4: get an image full url generated by Sprockets in production environment (inside rake task)Rails 4:在生产环境中获取由 Sprockets 生成的图像完整 url(在 rake 任务中)
【发布时间】: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


    【解决方案1】:

    在 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) %>
    

    【讨论】:

      猜你喜欢
      • 2016-11-13
      • 2019-10-28
      • 2015-11-05
      • 1970-01-01
      • 1970-01-01
      • 2014-09-10
      • 2012-08-07
      • 1970-01-01
      • 2012-12-26
      相关资源
      最近更新 更多