2016-12-29 42 views
1

我几乎完成与我的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中,代码是一样的东西Rails 5应用程序。资产流水线和预编译与heroku不显示js.jsx文件的图像

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

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

return ( <img src = "asset_path 'my_image.png'"/> ) 它的工作原理。