使用本地资产覆盖gem文件资产

时间:2015-10-16 21:38:03

标签: ruby-on-rails gem rails-engines

我有一个带有image_x.jpg的rails引擎宝石。我试图用我在项目中本地的图像覆盖该图像,将其添加到资产和图像中。公共目录。

然而,

Rails继续显示来自gem文件的图像而不是我的本地文件。

如果我对gem进行monkeypatch并删除图像image_x.jpg,则会显示本地项目中的图像,但这不太理想。

有没有办法告诉rails从我的本地项目而不是gem中的图像提供图像?

换句话说,有没有办法优先考虑宝石文件资产的本地资产?

1 个答案:

答案 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并重新启动服务器。