2011-09-23 88 views
8

我已经创建了一个供应商目录的创业板文件,其中包含bootstrap-sass和引导自身的样式表和JavaScript。获取资产管道路径中的Gem供应商文件

目录结构 引导 - 萨斯 - 宝石/供应商/资产/ JavaScript的

引导 - 萨斯 - 宝石/供应商/资产/样式

我所需要的宝石在一个测试项目中,但每当我尝试从该宝石中获得某些东西时,我都会收到Sprockets::FileNotFound错误。

例如,在application.css中我加了*= require bootstrap。 bootstrap位于bootstrap-sass-gem/vendor/assets/stylesheets/bootstrap.scss,所以按我的估算应包含在资产管道中。

我正在运行RVM Ruby 1.9.2和Rails 3.1。

这里是我的配置文件:

$:.push File.expand_path("../lib", __FILE__) 

# Maintain your gem's version: 
require "bootstrap-sass-gem/version" 

# Describe your gem and declare its dependencies: 
Gem::Specification.new do |s| 
    s.name  = "bootstrap-sass-gem" 
    s.version  = BootstrapSassGem::VERSION 
    s.authors  = ["James Smith"] 
    s.email  = ["[email protected]"] 
    s.homepage = "http://www.smithware.co.uk" 
    s.summary  = "The Bootstrap-sass project Gemified" 
    s.description = "Description of BootstrapSassGem." 

    s.files = Dir["{lib,vendor,rdoc}/**/*"] + Dir["*"] 
    #s.test_files = Dir["test/**/*"] 

    s.require_paths = ["lib/**/*"] 

    # We are dependent on the asset pipeline in 3.1.0 
    s.add_dependency "rails", "~> 3.1.0" 

    # s.add_development_dependency "" 
end 
+0

这可能是我真正想问的问题是:如何让我的宝石文件自动到资产管道? –

+0

即使手动将Gems样式表路径添加到管道中,也找不到bootstrap.scss文件。 –

回答

0

我认为资产管道期待您的文件被命名为喜欢bootstrap.css.scss。我不确定,但也许你需要定义一个railtie为你的宝石找到买卖的样式表

+0

离开.css在其他地方适合我。我有一个engine.rb文件,它在bootstrap-sass-gem.rb文件中被调用。将尝试railtie的方式。只使用引擎方式,因为他们在jQuery-rails gem中使用它。 –

+0

引擎应该没问题,它是railtie的一个子类。问题应该在于其他地方然后 –

+0

不幸的是,现在没有运气,这3天。 Rails指南说,看看jQuery的铁轨宝石,但即使使用它作为模板没有帮助。我怀疑你说的问题在别处,因为即使手动添加Gems样式表的路径也没有帮助。 –

1

问题在于我的require_paths变量。 正确的设置应该是:

s.require_paths = ["lib"] 
1

我有同样的问题,我解决它添加一个虚拟引擎。这种方式在rails 3.1资源路径被自动添加到Rails.application.config.assets.paths。

由于Rails的3.0,如果你想有一个宝石自动表现为一个 引擎,你必须为它的地方指定 插件的lib文件夹内的引擎。

+2

这是什么意思?你在哪里添加了代码? – Will