在Rails 4中从javascript访问生产中的图像

Bry*_*ley 14 sprockets asset-pipeline ruby-on-rails-4

看来现在在Rails 4中使用资产管道和sprocket-rails gem,当处理图像时,它们的文件名附加了像css和javascript这样的md5指纹.虽然这很有意义,因为md5指纹非常棒,但是从javascript访问该图像变得越来越困难.在rails 3.2中,我可以访问图像/assets/image_name.jpg并且它可以正常使用,但是在轨道4中资产不存在,它只存在名称中的md5指纹.

我知道rails提供帮助来通过erb访问图像,<%= asset-url("image_name.jpg") %>但这在javascript中不太理想,因为我没有在我的js中使用erb.有很多方法可以通过在视图中使用数据属性或在我的视图中使用脚本标记并设置一些全局变量来解决这个问题,但我正在寻找一个很好的解决方案,如果它存在的话.

任何帮助表示赞赏,谢谢.

Vir*_*ndi 0

为什么需要使用图像资产管道?我得到了哈希行为。但通常资产会被预处理。如果像以前一样将图像放入公共层次结构中,您将获得正常的路径路由。

这是资产管道指南中的一句话,我认为这可能是密切相关的。“资产仍然可以放置在公共层次结构中。公共下的任何资产都将由应用程序或 Web 服务器作为静态文件提供。对于在提供服务之前必须经过一些预处理的文件,您应该使用应用程序/资产。”