2016-12-29 16 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'"/> ) 它的工作原理。