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