Rails 5 app。使用heroku的资产管道和预编译不显示来自js.jsx文件的图像

时间:2016-12-29 05:29:24

标签: asset-pipeline ruby-on-rails-5

我差不多将Rails3应用程序升级到Rails5;但我面临资产流水线和预编译的问题。我们使用cdn作为资产主机。现在,当我在登台环境中将config.assets.precompile设置为false时,应用程序不会从js.jsx文件加载图像。在其他地方,应用程序从我提供的asset_host链接获取静态资产(js,css,images)。但在某些特定的javascript文件中,图像被指向我的应用程序的域名,如app.my_domain.com/assets/my_image.png,并且它提供404未找到错误。 在javascript中,代码类似于

return ( <img src="/assets/my_image.png"></img> )

由于这是一个js文件,我不能在这里使用asset_path帮助方法。 如何解决这个问题?

PS:将config.assets.precompile设置为true会加载来自app.my_domain.com/assets/my_image.png的图片,但由于这个原因,这不是我想要的。 config.assets.compile=true in Rails production, why not?

对此有任何帮助,我们非常感谢。提前谢谢。

1 个答案:

答案 0 :(得分:0)

经过一番研究后我找到了答案。我将文件的名称更改为js.jsx.erb,并相应地使用了rails提供的asset_path帮助方法。

return ( <img src = "asset_path 'my_image.png'"/> ) 它有效。