从宝石中的资产管道访问资产

问题描述:

我有一个使用资产管道的rails应用程序。加载资源可以正常工作,例如url_to_image从宝石中的资产管道访问资产

我现在有一个gem我想访问使用rails应用程序的asset-pipeline。因此,在gem中使用url_to_image时,应该创建与从rails应用程序直接调用此路径相同的路径。

目前情况并非如此。当直接从Rails应用程序调用这个,我得到例如root/assets/my_asset.png。当从宝石进行相同的呼叫时,我得到root/images/my_asset.png

看起来不知何故,该宝石无法访问该应用的资产管道,因此无法找到它。为此,它将回落到安装目录的images

这是什么问题的解决方案?

宝石不知道其中包含的应用程序的资产,否则它将不得不知道它包含在内的所有应用程序的所有资产,这是不可能的。

您的项目结构中可能有错误...您可以做的是最终将一个默认资产放在gem中并在您的应用程序中将其更改为覆盖它。

+0

rails应用程序以及宝石需要相同的资产。将资产添加到宝石时,它们在应用程序中可用吗? – Razer 2014-10-03 12:48:58

+0

当然他们是 – coorasse 2014-10-03 12:50:34

+1

但是,如何通过宝石提供资产时,如何访问宝石中的资产?我的宝石不包含Rails :: Engine,并将资源提供给应用程序。 – Razer 2014-10-03 13:22:27