ruby-on-rails - not - instalar bootstrap rails
bootstrap-sass: Variable no definida: “$ baseLineHeight” (3)
He integrado bootstrap en mi aplicación usando bootstrap-sass. La aplicación funciona bien en mi máquina local, pero cuando voy a implementarla a través de capistrano, aparece este error:
Undefined variable: "$baseLineHeight".
(in /var/www/CollegeSportsBlueBook/shared/bundle/ruby/1.9.1/gems/bootstrap-sass-2.0.1/vendor/assets/stylesheets/bootstrap/_accordion.scss)
Cuando el capistrano intenta ejecutar assets:precompile
Creo que esta variable está generando el error porque es la primera variable en el primer archivo scss que se intenta precompilar.
Algo no se está cargando bien. ¿Alguna idea de lo que podría ser?
Editar
Rastreo completo aquí https://gist.github.com/2233071
Editar 2
Se agregó application.rb y production.rb a gist
Debe asegurarse de que la importación de todos sus archivos css se realice en el orden correcto. Para que las variables funcionen, debe ser uno de los primeros archivos css que se carguen.
Esta publicación / respuesta debería ayudar a una estructura de activos SCSS adecuada en los rieles
Ha editado su archivo production.rb
para que Rails intente precompilar todos los archivos CSS / JS (línea 48).
Por defecto, Rails solo precompilará application.css(.scss)
. Al agregar el selector de comodines a config.assets.precompile
le está pidiendo a Rails que precompile cada activo css en su aplicación, incluidos los parciales de Sass. Naturalmente, este no es probablemente el comportamiento que deseas.
# Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
config.assets.precompile += %w( *.css *.js )
Rails, por lo tanto, iterará sobre cada activo css, compilándolos. Ocurre que _accordion.css.scss
es el primer activo de Bootstrap con el que se encuentra, y Rails intentará compilarlo primero. _accordion
no es independiente, y requiere que algunos archivos se carguen antes, de ahí el error. Nunca debe ser compilado como un archivo separado de todos modos.
config.assets.precompile
cambiar su config.assets.precompile
para agregar solo los archivos adicionales que necesita además de application.css/application.js
.
Inicialmente tuve el problema similar Sass :: SyntaxError: Variable no definida: "$ alert-padding". Problema con esta línea en el archivo assets.rb
:
Rails.application.config.assets.precompile += [/.*/.css/]
No sé por qué, pero para mí ayudó a cambiarlo a esta línea.
Rails.application.config.assets.precompile += [/^[-_a-zA-Z0-9]*/..*/]
Después se resolvió el problema y todo funcionó en producción.