2011-06-18 7 views
11

Estoy utilizando Rails 3.1RC4 con la configuración SASS predeterminada. Tengo los siguientes archivosVariables globales de SASS + Rieles 3.1

application.css.scss

/* 
* This is a manifest file that'll automatically include all the stylesheets available in this directory 
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at 
* the top of the compiled file, but it's generally better to create a new file per style scope. 
*= require_self 
*= require_tree . 
*/ 

_variables.css.scss

$var1 : somevalue; 
... 

site_layout.css.scss

@import "variables"; 
... Some Sass Code 

Pero no puedo acceder a las variables definidas en _variables.css.scss en site_layout. ¿Qué estoy haciendo mal? Rails aparentemente está encontrando el archivo de variables, ya que no arroja un error de "archivo no encontrado", que ocurre si cambio el nombre del archivo de importación. Aún así, los vars no se llevan.

¿Alguna idea?

Gracias!

+0

Estoy teniendo exactamente el mismo problema con un mixin almacenado en un parcial. ¿Alguna vez descubrió una solución? – LandonSchropp

+0

No, no lo he hecho. Por ahora, comenté las declaraciones require en mi application.css.scss y @import todos mis otros archivos sass de forma manual. Eso está funcionando bien, pero con suerte es solo una solución temporal. – Denny

Respuesta

3

El problema parece corregirse con la última versión de los rieles & piñones. En su gemfile:

gem 'rails', :git => "git://github.com/rails/rails.git", :branch => "3-1-stable" 
+0

Impresionante. Gracias por postear tu solución. – LandonSchropp

-3

La primera parte de su pregunta (el fragmento de código application.css.scss) no parece tener relevancia aquí, ya que es solo código comentado, así que omitiré esa parte.

Para el segundo fragmento de código, no creo que SASS esté configurado para importar un "parcial" como lo hace aquí. Usted sería mejor hacer algo como esto:

_variables.scss (nuevo nombre de _variables.css.scss):

$var1: somevalue; 

Tenga en cuenta que el carácter de subrayado en su nombre de archivo no se requiere como sería para un Ruby parcial. Se puede nombrar a la misma facilidad que variables.scss el tiempo que ha cambiado la declaración de importación para que @import "variables";

site_layout.scss (nuevo nombre de site_layout.css.scss)

@import "_variables"; 

.test_thingy { 
    color: $var1; 
    } 

Esto generará un site_layout.css archivo que contiene la siguiente sustitución de código:

.test_thingy { 
    color: somevalue; } 

Tenga en cuenta que no es necesario tener archivos n amed como filename.css.scss como lo haría con archivos HAML/ERB. Simplemente asigne al archivo el nombre que desea que sea. Por ejemplo, filename.scss hará que SASS genere automáticamente un archivo CSS llamado filename.css.

+0

El archivo 'application.css.scss' tiene relevancia. El código comentado es donde configura los Piñones. El resto de tu solución tampoco funcionó para mí. – LandonSchropp

+0

No creo que esto sea correcto. El guión bajo es una forma de definir parciales sass como se describe aquí: http://sass-lang.com/tutorial.html. filename.css.scss es el nombre de archivo predeterminado de Rails 3.1, así que me quedaré con eso. Creo que podrías haber malentendido. Esto no se trata de los sass en general, se trata de Rails 3.1 en particular. – Denny

+0

@helixed, no estoy seguro de por qué no funcionó, pero mi respuesta está probada. –