template sintax rails for escape comment ruby-on-rails haml sass

ruby-on-rails - sintax - rails slim for



¿Cuál es el mejor método para almacenar CSS generado por SASS en su aplicación y control de origen? (5)

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 a la segunda ruta, cree un ayudante para abstraer el subdirectorio sass-out.

Si está utilizando HAML y SASS en su aplicación Rails, todas las plantillas que defina en public / stylesheet / *. Sass se compilarán en las 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.

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 pensar que el directorio público / no debe contener elementos que no envíe al navegador.

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


Siempre hago versiones de todas las hojas de estilo en "public / stylesheets / sass / *. Sass" y configuro un filtro de exclusión para las compiladas:

/public/stylesheets/*.css


Honestamente, me gusta tener mis hojas de estilo SASS compiladas en 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 la página, el proceso de los rieles 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.


El marco Compass recomienda poner sus hojas de estilo sass en la aplicación / hojas de estilo y su CSS compilado en public / stylesheets / compiled.

Puede configurar esto agregando el siguiente código a su entorno.rb:

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

Si usa la brújula marco, establece esta configuración para usted cuando la instale.


Algo relacionado, pero es una buena idea regenerar su CSS durante las implementaciones de Capistrano. Este enlace de devolución de llamada hace justamente 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.