5

我正在做一个需要稍微改变 Refinery 的 WYMEditor 行为的项目。这很容易通过覆盖jquery.refinery.wymeditor.js使用rake refinery:override和编辑它来满足我自己的需要,这在开发环境中运行良好。

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

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

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

任何帮助表示赞赏。

4

2 回答 2

3

所以我成功地击败了它。首先要提到的是,如果不深入研究 Refinery 源代码,这是不可能的。

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

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

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

于 2011-11-03T22:27:03.527 回答
0

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

于 2011-10-25T19:45:29.437 回答