2012-02-28 11 views
7

El objetivo:inhabilitar de forma selectiva asset.digest en Rails 3, por lo que el sitio externo puede incluir hojas de estilo

me gustaría un blog Tumblr para tirar CSS desde el directorio activo de una aplicación Rails.

Esto significa que puedo usar SASS, Compass y otro CSS de todo el sitio para generar el estilo.

Esto también significa que si algo se actualiza en CSS de bajo nivel, tumblr.css se regenerará junto con el cap deploy normal, y la apariencia de Tumblr cambiará automáticamente.

El problema:

los carriles 3 ducto activo añade un hash al nombre del archivo, por ejemplo:

tumblr-c6ec969ce054623163b9404f6c8330e9.css

Por lo tanto la plantilla Tumblr no puede incluirlo menos que puedo actualizar la dirección URL de forma manual cada vez que cambia.

¿Hay alguna forma de desactivar selectivamente asset.digest para un archivo, o generar explícitamente un único archivo CSS de SASS, sin pasar por toda la canalización de activos? ¿O tal vez para generar un alias automático o algo así?

Respuesta

5

No tendrá que deshabilitar los resúmenes.

Cuando Rails precompila los activos, agrega resúmenes a todos los archivos. Sin embargo, también crea archivos idénticos sin resúmenes. Por lo tanto los siguientes archivos se cargue el mismo CSS:

  • tumblr-c6ec969ce054623163b9404f6c8330e9.css
  • tumblr.css

Si comprueba el directorio public/assets después de la compilación previa debería ver ambos archivos.

Espero que esto ayude.

+2

Hmm, esto Definitivamente no es el caso con mi implementación. No hay _no_ archivos en 'public/assets' sin resúmenes. ¿Quizás he roto algo en precompilación entonces? – Leo

+0

¿Lo está ejecutando con el entorno correcto? De esta manera: 'activos de rake: precompilación RAILS_ENV = production' –

+0

En Capistrano, puede que tenga que agregar' set: rails_env,: production' a su receta. –

3

En Rails 4 parece que la precompilación de elementos activos ya no contiene los nombres de archivo resumidos y no digeribles, solo se compilan los nombres de los archivos con el resumen. La mejor opción ahora para precompilar activos sin digerir un hash es el uso de la no estúpida Activos Digest joya:

https://github.com/alexspeller/non-stupid-digest-assets 

Esperemos que añadir esto al proyecto de rieles como una característica estándar en los carriles 5.

Cuestiones relacionadas