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

时间:2011-10-20 00:12:47

标签: ruby-on-rails ruby-on-rails-3 assets sprockets refinerycms

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

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

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

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

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:3)

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

正如我在评论中所写,问题是我试图覆盖未包括在内的资产( wymeditor / jquery.refinery.wymeditor.js )直接查看,但在另一个资产中引用,该资产取自gem。由于链轮对Refinery的覆盖一无所知,因此它通过相对路径获取引用的资产,即来自gem(因此也未经修改)。所以,再一次,在我的情况下,解决方案是覆盖 refinery / wymeditor.js ,一切都充当魅力。

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

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

答案 1 :(得分:0)

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

相关问题