简体   繁体   English

在Rails 4中包含gem的资产

[英]Include gem's assets in Rails 4

I've created a gem (not engine) that has some js files in it: 我创建了一个gem(不是引擎),里面有一些js文件:

lib/assets/javascripts/mygem.js

In my application, I want to include this js into application.js: 在我的应用程序中,我想将这个js包含到application.js中:

# app/assets/javascripts/application.js

// require mygem  # DOESN'T WORK

This doesn't work. 这不起作用。

Is it possible to include assets from gems? 是否可以包含宝石资产? Or I should write a generator for a gem which will copy all assets from gem into application assets folder. 或者我应该为gem编写一个生成器,它将所有资产从gem复制到application assets文件夹中。

Add Engine class to the gem and require it in gem: 将Engine类添加到gem并在gem中需要它:

# lib/mygem/rails/engine.rb
module Mygem
  module Rails
    class Engine < ::Rails::Engine

    end
  end
end

# lib/mygem.rb:
module Mygem
  require 'mygem/rails/engine'

end

Now assets from the gem are available in application: 现在,gem中的资产可用于应用程序:

Gemfile: 的Gemfile:

 gem 'mygem'

app/assets/javascripts/application.js 应用程序/资产/ JavaScript的/ application.js中

//= require mygem

Read about adding Assets to Your Gems: 阅读有关向您的宝石添加资产的信息:

http://guides.rubyonrails.org/asset_pipeline.html#adding-assets-to-your-gems http://guides.rubyonrails.org/asset_pipeline.html#adding-assets-to-your-gems

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

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