我想写一个gem,一旦绑定到Rails3.1Gemfile中,就会包含一些样板CSS和JS文件。
我知道生成器,但是如果没有生成器,我如何才能做到这一点,这样就可以添加和删除gem的效果,而不需要编辑Rails Gemfile中的一行?
理想情况下,我希望gem在安装时包含默认的CSS/JS,然后让用户使用生成器生成CSS/JS文件,如果他们想做任何修改的话。
这是我从jquery-rails复制的一个示例gem,其中包含没有生成器的javascript文件。
css_gem/
lib/
css_gem.rb {1}
css_gem/
engine.rb {2}
app/
assets/
stylesheets/
css_gem/
index.css {3}
base.css {4}
{1} lib/css_gem.rb
module CssGem
require "css_gem/engine"
end
{2} lib/css_gem/engine.rb
module CSSGem
class Engine < Rails::Engine
end
end
{3}应用程序/资源/样式表/css_gem/index.css
/*
*= require base
*/
{4}应用程序/资源/样式表/css_gem/base.css
.custom { color: red; }
Rails Gemfile
gem 'css_gem', :path => 'path_to_my_local_gem'
这对我不起作用,Rails看不到CSS文件。我做错了什么?
解决方案:谢天谢地,我找到了一个可以拉我手的视频:http://house9.blogspot.com/2011/06/rails-31-asset-gem.html
我仍然需要手动将*= require css_gem
添加到我的Rails样式表清单中(app/assets/stylesheets/application.css)。是啊。
发布于 2011-07-18 04:14:17
免责声明-我还没有尝试过。您可以利用Rails 3.1中的Asset Pipeline使gem中的资产可供客户端应用程序使用,而无需使用生成器。
我还没有找到使用中的实际示例,但这里有指向早期文档的链接
http://edgeguides.rubyonrails.org/asset_pipeline.html http://edgeguides.rubyonrails.org/asset_pipeline.html#adding-assets-to-your-gems
发布于 2012-07-17 12:24:26
Zurb有一篇很棒的文章,讲述了他们如何将基础资产打包为gem:
"Yetify Your Rails: New Foundation Gem and How To Gemify Your Own Assets"
发布于 2014-08-17 17:53:51
https://stackoverflow.com/questions/6726256
复制相似问题