我差不多将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?
对此有任何帮助,我们非常感谢。提前谢谢。
答案 0 :(得分:0)
经过一番研究后我找到了答案。我将文件的名称更改为js.jsx.erb,并相应地使用了rails提供的asset_path帮助方法。
return (
<img src = "asset_path 'my_image.png'"/>
)
它有效。