2011-10-12 14 views
6

Me gustaría cambiar mi archivo application.css a un archivo sass y usar @import para extraer todos los archivos necesarios. Entonces quiero @importar la aplicación.css.sass en archivos sass específicos de la página. Todo esto funciona muy bien en el desarrollo, pero cuando la empujo a la producción de env heroku me sale este error:¿Es posible cambiar application.css a application.css.sass?

Error compiling CSS asset 
Sass::SyntaxError: File to import not found or unreadable: application 

application.css.sass:

@import "reset" 
@import "typography" 
@import "buttons" 
@import "junk" 

$yellow: #f0f090 
$orange: #f89818 
$blue1: #184898 
$blue2: #4888c8 

body 
background: ... 
... 
/* all the rest of the app-wide styling */ 

uniquePage.css.sass :

@import "application" 
/*page specific styling*/ 

a continuación, en las páginas que necesitan cosas diferentes de application.css llamo

!!! 5 
%html 
    %header  
    = stylesheet_link_tag "uniquePage" 

Respuesta

3

Then I guess the question becomes, how do I make different manifest files for different css sets?

Hay varias formas t O hacer esto:

1. Por sábanas página

Esto es lo que está haciendo ahora, pero yo organizaría las hojas de forma ligeramente diferente, utilizando @imports en tanto la aplicación como la página única. (En lugar de importar la aplicación a la página única).

2. Utilice una segunda hoja por sólo esas páginas

Usted puede tener una segunda hoja con sólo los cambios para esa página. Todas las páginas tienen la hoja de aplicación, y se agrega una segunda etiqueta en la página única con solo los cambios requeridos. Esto le cuesta una solicitud HTTP adicional.

3. reorganizar su CSS

A menos que el CSS extra es sustancial, puede ser mejor de refactorización para incluir el código en el archivo principal. Es fácil agregar una clase extra a la etiqueta corporal de la página única y ajustar cualquier CSS para que la página lo use.

Todavía puede poner ese CSS en un archivo para la página única (para ayudar con el mantenimiento), y @importarlo a su archivo principal.

Como regla general, a menos que los cambios de estilo CSS son sustanciales, me gustaría tratar de combinarlos en el CSS principal, de lo contrario ir a la opción 1.

5

En Rails 3.1, application.css está destinado a ser utilizado como un archivo de manifiesto. No debe cambiarle el nombre, ni debe colocar contenido dentro de él, excepto que exija o incluya directivas.

Utilice un nombre de archivo diferente para su propósito.

También tenga en cuenta que el SCSS @import syntax es como usar un parcial. Si desea @import application, el archivo que se va a importar se debe llamar _application, no application.

+0

Entonces creo que la pregunta es, ¿cómo puedo hacer diferentes archivos de manifiesto para diferentes juegos de CSS? –

Cuestiones relacionadas