如何在应用程序中扩展 Rails 可装载引擎资产?

How to extend Rails Mountable Engine Assets in Application?

假设我们有 Rails 引擎 blog

引擎的结构是:

blog
    assets
    javascripts
        blog
            master.js
            application.js
    controllers
        ...
    helpers
        ...

application.js

//= require_tree .

master.js 持有一些 JavaScript 代码。

我的应用程序也在 /blog 使用这个引擎。

我的问题是:如何从我的应用程序向引擎添加一些 JavaScript 代码?

解决方法是:

  1. 确保插件和应用程序上的捆绑文件 (application.js、application.css) 具有不同的名称。在我的示例中,插件的捆绑包将是 bundle.js,而应用程序的捆绑包 — application.js
  2. bundle.js 看起来像:

    require_tree .

  3. application.js 看起来像:

    需要blog/bundle

    require_tree .

问题在于名称重叠 - 应用程序的捆绑包与引擎重叠。