简体   繁体   English

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

[英]How to extend Rails Mountable Engine Assets in Application?

Imagine we have Rails Engine blog . 想象一下,我们有Rails Engine blog

The engine's structure is: 引擎的结构为:

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

application.js is application.js

//= require_tree .

master.js holds some JavaScript code. master.js包含一些JavaScript代码。

Also I have my application using this engine at /blog . 我的应用程序也在/blog使用此引擎。

My question is: How can I add some JavaScript code to engine from my application? 我的问题是:如何从应用程序向引擎添加一些JavaScript代码?

Solution is: 解决方法是:

  1. Ensure bundle files (application.js, application.css) on plugin and application have different names. 确保插件和应用程序上的捆绑文件(application.js,application.css)具有不同的名称。 In my example plugin's bundle will be bundle.js, and application's bundle — application.js 在我的示例中,插件的包将是bundle.js,应用程序的包将是application.js
  2. bundle.js will look like: bundle.js看起来像:

    require_tree . require_tree。

  3. application.js will look like: application.js将如下所示:

    require blog/bundle 需要博客/捆绑

    require_tree . require_tree。

The problem was in name overlapping - application's bundle was overlapping engines one. 问题在于名称重叠-应用程序的捆绑软件是重叠的引擎。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM