2011-09-23 10 views
8

He creado una gema con un directorio de proveedor que contiene hojas de estilo y javascripts de bootstrap-sass y el propio bootstrap.Obtener archivos de proveedor de Gem en la ruta de canalización de activos

La estructura de directorios es de arranque-Sass-gema/proveedor/activos/javascript

y

de arranque-Sass-gema/vendor/activos/hojas de estilo

he requerido la gema en un proyecto de prueba, pero cada vez que intento requerir algo de esa gema recibo un error Sprockets::FileNotFound.

Por ejemplo, en application.css agregué *= require bootstrap. bootstrap se encuentra en bootstrap-sass-gem/vendor/assets/stylesheets/bootstrap.scss y por lo que a mi juicio debería incluirse en la cartera de activos.

Estoy ejecutando RVM Ruby 1.9.2 y Rails 3.1.

Aquí está mi archivo de configuración:

$:.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

Podría ser que la pregunta que realmente quiero hacer aquí sea la siguiente: ¿Cómo puedo obtener mis archivos gems en el inventario de activos automáticamente? –

+0

Incluso después de agregar manualmente la ruta de las hojas de estilo Gems a la canalización, no se encuentra el archivo bootstrap.scss. –

Respuesta

0

creo que la tubería de activos espera que sus archivos para ser nombrado como bootstrap.css.scss. y no estoy seguro, pero tal vez necesites definir una razón de ser de tu joya para los raíles para encontrar las hojas de estilo guardadas

+0

Salir de .css funciona bien para mí en otros lugares. Tengo un archivo engine.rb en su lugar que se llama en el archivo bootstrap-sass-gem.rb. Intentaremos la manera más racional. Solo usé el motor como lo usan en la gema jQuery-rails. –

+0

motor debería estar bien, es una subclase de railtie. el problema debería estar en otro lugar, luego –

+0

Lamentablemente no tuve suerte con esto durante 3 días. La guía de Rails dice que mire la gema jquery-rails, pero incluso usarla como plantilla no ayudó. Sospecho que tienes razón al decir que el problema está en otra parte, ya que incluso agregar manualmente la ruta a las hojas de estilo de las Gemas no ayuda. –

1

El problema fue con mi variable require_paths. El ajuste correcto debería haber sido:

s.require_paths = ["lib"] 
1

que tenían el mismo problema, he resuelto que la adición de un motor de maniquí. De esta manera en los carriles 3.1, la ruta de los activos se agregó automáticamente a Rails.application.config.assets.paths.

Desde Rails 3.0, si quieres una joya comportarse de forma automática como motor , tiene que especificar un motor para que en algún lugar dentro de su carpeta lib del plugin.

+2

¿Qué significa esto? ¿Dónde agregaste el código? – Will

Cuestiones relacionadas