escape import sass ruby-on-rails-3.1 asset-pipeline

escape - La canalización de activos de Rails 3.1 no recoge los cambios en @ hojas importadas



haml syntax (2)

Yo uso @import ''d hojas parciales para organizar mi css / sass:

/app /assets /stylesheets _constants.sass _layout.sass ... app.css.sass app.css.sass: @import _constants.sass // basic styles @import _layout.sass @import ...

app.css.sass tiene una regla @import para _layout.sass , que me permite compartir los mixins y las variables entre los archivos sass en bruto antes de que se cumplan en app.css

El problema es que Rails no reconoce los cambios en los parciales de @import ''d ( _layout.sass ) y no regenera app.css hasta que realice un cambio en el archivo app.css.sass real. Esto ralentiza dramáticamente mi flujo de trabajo y significa que tengo que agregar / eliminar líneas en blanco de app.css.sass para ver los cambios. Nunca tuve este problema en 3.0.

¿Hay una manera de forzar a los activos sass a regenerarse en cada solicitud de servidor en desarrollo?


El uso de una directiva depend_on puede hacer lo que necesite. Esto hace que el archivo dado sea una dependencia del archivo base (por lo que el archivo base se regenera cuando cambia la dependencia), pero no lo incluye en el paquete.

Por ejemplo:

/* *= depend_on _layout.sass *= depend_on _constants.sass */ @import _layout.sass @import _constants.sass

Vea esta publicación del blog de sass and sprockets así como la documentación de los sprockets (especialmente la sección de directivas).


La respuesta de nanothief me llevó a la solución (¡gracias!) Pero de manera indirecta. Una vez que finalmente encontré el tiempo para volver aquí y buscar la publicación de referencia, se había actualizado para decir que la solución ya no era necesaria.

Efectivamente, parece que este error se ha corregido en Rails 3.1.0 estable con sass-rails para 3.1.0. ¡Tan bueno! He confirmado que la actualización de las gemas hace que todo vuelva a funcionar correctamente, probado en un par de aplicaciones.