覆盖生产环境中的后端资产

我正在研究一个需要改变Refinery的WYMEditor行为的项目。 这可以通过使用rake refinery:override jquery.refinery.wymeditor.js覆盖jquery.refinery.wymeditor.js来轻松完成rake refinery:override并根据自己的需要对其进行编辑,这在开发环境中工作正常。

但是,在生产方面,忽略了覆盖。 也就是说,编译后的资产只包含来自bundle的jquery.refinery.wymeditor.js ,并直接编辑该文件可能会产生预期的效果,但这不是它应该完成的方式。

奇怪的是,只有在试图覆盖与后端相关的资产时,问题显然才会显现出来。

知道我正在使用炼油厂边缘可能会有用。

任何帮助赞赏。

所以我设法击败了它。 首先要提到的是,如果不加入Refinery源代码就不可能实现。

正如我在评论中已经写过的那样,问题在于我试图覆盖一个资源(在我的情况下是wymeditor / jquery.refinery.wymeditor.js ),这个资产没有直接包含在视图中,而是在另一个资产中被引用,这是从gem中取出的。 因为链轮对Refinery的覆盖一无所知,所以它通过相对路径获取引用的资产,即来自gem(因此也是未经修改的)。 所以,再次,在我的情况下,解决方案是覆盖炼油厂/ wymeditor.js ,一切都作为魅力。

如果您需要更改除WYMEditor之外的任何其他后端脚本,除了需要修改的脚本之外,您很可能必须覆盖包含所有其他后端脚本的refinery / refinery.js。

但是有一个很大的问题。 有了所有这些覆盖,我已经使任何更新非常容易出错,因为有些文件会更新,有些则不会。 可以通过覆盖所有内容来避免它,但这实际上意味着根本没有更新。

尝试更改生成的文件的名称,并将其包含在清单中而不是原始名称中。 我怀疑它是在两个名为同一件事的资产存在的情况下更喜欢原件。