ruby-on-rails - 在生产环境中覆盖后端 Assets

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

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

但是,当涉及到生产时,覆盖将被忽略。也就是说,编译后的 Assets 只包含 jquery.refinery.wymeditor.js从 bundle 中直接编辑该文件可能会产生所需的效果,但这不是应该完成的方式。

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

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

任何帮助表示赞赏。

最佳答案

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

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

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

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

关于ruby-on-rails - 在生产环境中覆盖后端 Assets ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7829726/

相关文章:

ruby-on-rails - 使用回形针在 Rails 应用程序中上传时裁剪视频和音频文件

jquery - 在rails中执行AJAX Post而不传递authenticity_token

ruby-on-rails - Rails3 从索引 View 更新 bool 复选框

java - 如何在 Android Studio 中导入并使用 txt 文件?

ruby - Sinatra 无错退出

ruby-on-rails - 如何在 Rails 控制台中获取模型的所有记录数

ruby-on-rails - 在拆分正则表达式并将结果放入数组时遇到问题

ruby-on-rails - 我必须运行 rake db :test:load each time manually before runnings tests?

ruby-on-rails - 如何解决 Rails 中的 JSON 语法错误?

ios - 是否必须使用 Assets.xcassets?