2008-09-17 7 views
19

Si está utilizando HAML y SASS en su aplicación Rails, todas las plantillas que defina en public/stylesheet/*. Sass se compilarán en hojas de estilo * .css. Desde su código, usa stylesheet_link_tag para obtener el activo por su nombre sin tener que preocuparse por la extensión.¿Cuál es el mejor método para almacenar CSS generado por SASS en su aplicación y control de origen?

A muchas personas les disgusta almacenar el código generado o el código compilado en el control de versiones, y también es lógico que el directorio/public no contenga elementos que no envíe al navegador.

¿Cuál es el mejor patrón a seguir al diseñar recursos SASS en su proyecto de Rails?

Respuesta

11

Siempre versión de todas las hojas de estilo en "/ hojas de estilo/Sass pública/* Sass." Y establecer un filtro de exclusión para los compilados:

/public/stylesheets/*.css 
0

Si puedo gestionarlo, me gusta almacenar todos mis estilos en plantillas SASS cuando elijo HAML/SASS para un proyecto, y eliminaré application.css y scaffold.css. Luego pondré SASS en public/stylesheets/sass, y agregaré /public/stylesheets/*.css a .gitignore.

Si tengo que trabajar con una combinación de activos basados ​​en SASS y CSS, es un poco más complicado. La forma más sencilla de manejar esto es tener un subdirectorio de salida para CSS generado en el directorio de hojas de estilo, luego excluir ese subdirectorio en .gitignore. Luego, en sus vistas debe saber qué tipo de estilo está usando (SASS o CSS) en virtud de tener que seleccionar la hoja de estilo public/stylesheets/foo o la hoja de estilo public/stylesheets/sass-out/foo.

Si tiene que ir por la segunda ruta, cree un ayudante para abstraer el subdirectorio sass-out.

6

Honestamente, me gusta tener mis hojas de estilo SASS compilados en el control de versiones . Son pequeños, solo cambian cuando tus archivos .sass cambian, y hacer que se implementen con el resto de tu aplicación significa que el compilador SASS no necesita disparar en producción.

La otra ventaja (aunque pequeña) es que si no está utilizando el almacenamiento en caché de páginas, el proceso de sus raíles no necesita tener acceso de escritura a su directorio public_html. Entonces hay una forma menos de que un exploit de tu servidor pueda ser malo.

5

Algo relacionado, pero es una buena idea regenerar su CSS durante las implementaciones de Capistrano. Este gancho de devolución de llamada no sólo eso:

after "deploy:update_code" do 
    rails_env = fetch(:rails_env, "production") 
    run "#{release_path}/script/runner -e #{rails_env} 'Sass::Plugin.update_stylesheets'" 
end 

actualización: Esto ya no debería ser necesario con las versiones modernas de Haml/Sass.

13

El marco compass recomienda colocar sus hojas de estilo sass en la aplicación/hojas de estilo y su css compilado en public/stylesheets/compiled.

Puede configurar esta añadiendo el siguiente código a su environment.rb:

Sass::Plugin.options[:template_location] = { 
    "#{RAILS_ROOT}/app/stylesheets" => "#{RAILS_ROOT}/public/stylesheets/compiled" 
} 

Si utiliza el marco de la brújula, en ella se establece esta configuración para usted cuando lo instale.

Cuestiones relacionadas