我有一个带有image_x.jpg的rails引擎宝石。我试图用我在项目中本地的图像覆盖该图像,将其添加到资产和图像中。公共目录。
然而,Rails继续显示来自gem文件的图像而不是我的本地文件。
如果我对gem进行monkeypatch并删除图像image_x.jpg,则会显示本地项目中的图像,但这不太理想。
有没有办法告诉rails从我的本地项目而不是gem中的图像提供图像?
换句话说,有没有办法优先考虑宝石文件资产的本地资产?
答案 0 :(得分:2)
默认情况下,Rails应使用您的本地image_x.jpg。
要检查Rails搜索资产的顺序,请打开控制台并输入:
Rails.application.config.assets.paths
您应该能够验证您的app / assets目录是否出现在搜索路径中的gem的assets目录之前。如果没有,某些东西可能正在修改您的资产路径。
如果您的资产路径看起来不对,您可以轻松修改它。 (它只是一个字符串数组。)要添加新的最高优先级目录,请尝试将以下内容添加到初始化程序中:
Rails.application.config.assets.paths.unshift "/some/other/path"
同时尝试删除tmp/cache/assets
并重新启动服务器。