2011-09-05 18 views
5

En su mayor parte he seguido la dirección expuso hereNo es posible obtener los carriles 3,1, Brújula, Sass, Blueprint trabajando en Heroku Cedar

cual se produjo el siguiente error procedente del inicializador que me pidió que crear:

from /app/config/initializers/sass.rb:1:in `<top (required)>' 
2011-09-05T16:45:42+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/railties- 3.1.0/lib/rails/railtie/configuration.rb:78:in `method_missing': undefined method `sass' for # <Rails::Application::Configuration:0x00000003845528> (NoMethodError) 

La página de Heroku sobre cómo empezar tampoco es de mucha ayuda. Es básicamente las mismas instrucciones solo sin el inicializador. Sin embargo, sin él, no puede encontrar nada del anteproyecto así que todavía no puedo comenzar.

¿Alguien por ahí que ha llegado más lejos que yo?

Editar para más historia:

me pasó por una serie de errores para llegar hasta aquí, así que pensé que debería escribir a todos. El primer problema que tuve fue que html5-boilerplate estaba en: assets, lo que significaba que el método ie_html no se había encontrado, así que lo saqué de: assets.

Esto dio lugar a este error porque html5-repetitivo depende de la brújula:

2011-09-05T17:15:47+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/bundler/gems/compass-b7f44a48d375/lib/compass/version.rb:56:in `const_missing': uninitialized constant Compass::Frameworks (NameError) 
2011-09-05T17:15:47+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/bundler/gems/compass-html5-boilerplate-405f9ddbca56/lib/html5-boilerplate.rb:1:in `<top (required)>' 

Respuesta

9

Al final, la solución final era también hacer Sass-carriles global (o al menos parece haber sido). En cierto modo, siento que finalmente conseguí que esto funcione por coincidencia, pero aquí está.

Saqué la brújula de: los activos y la convertí en global también. Lo que luego generó errores al compilar los archivos SCSS, lo que finalmente me llevó a actualizar a Ceder, lo que resultó en errores en el anteproyecto.

Por último, agregué el inicializador que, supongo, está destinado a agregar el material de la brújula a la ruta de configuración. Espero que todo ayude.

Este es el código correspondiente:

gem 'heroku' 
gem 'haml' 
gem 'compass', :git => 'git://github.com/chriseppstein/compass.git' 
gem 'html5-boilerplate', :git => 'git://github.com/sporkd/compass-html5-boilerplate.git' 
gem 'sass-rails', " ~> 3.1.0" 

Nota las versiones de GitHub para brújula y html5-repetitivo (no es necesario h5bp si no lo utiliza).

El inicializador es:

Rails.configuration.sass.tap do |config| 
    config.load_paths << "#{Gem.loaded_specs['compass'].full_gem_path}/frameworks/compass/stylesheets" 
end 
+0

Teniendo el mismo problema actualmente y moviendo sass-rails de los activos a globales no parece resolverlo en mi extremo ... espero que podamos resolver esto ... – Pygmalion

+0

Debería haber sido más detallado, tuve que mover algunas cosas para ser global, lo he actualizado. –

1

La cuestión no es que Sass-carriles tiene que ser global, pero que algo en su conjunto global se basa en Sass-carriles.

Para mí, la solución fue mover la brújula al grupo de activos.

+0

Sí H5BP se llama en la vista base HAML y terminó necesitando ser global. Depende de Compass y eso a su vez depende de sass-rails. Entonces es un poco un efecto de cadena. –

+0

¿Cómo se mueve la brújula en el grupo de activos? ¿Qué código necesita ser cambiado? – Jaryl

+0

en su archivo de geomorfología: grupo: activos hacen gem 'sass-rails' final –

0

He puesto algunas instrucciones detalladas aquí: http://www.mattvanhorn.com/2012/01/07/heroku-cedar-assets-ruby-1-9/

Cubre conseguir un rieles básicos 3.1 aplicación con marco de Compass se ejecuta en pila Heroku Cedar.

También hay enlaces a un repositorio github (http://github.com/mattvanhorn/placepanda/commits) para que pueda seguir paso a paso con los commits.

Es posible que también necesite agregar load_paths en application.rb si está utilizando blueprint.Yo uso Twitter arranque en otra aplicación como esta, y tengo:

if Rails.configuration.respond_to?(:sass) 
    config.sass.load_paths << "#{Gem.loaded_specs['compass'].full_gem_path}/frameworks/compass/stylesheets" 
    config.sass.load_paths << "#{Gem.loaded_specs['compass_twitter_bootstrap'].full_gem_path}/lib/../stylesheets" 
end 

en mi application.rb, el condicional es prevenir Heroku de vomitar en el arranque, cuando config.sass ya no estará disponible como es para precompilación.

Cuestiones relacionadas