2012-01-23 17 views
6

Acabo de cambiar mi backend de almacenamiento a Amazon S3, y me di cuenta de que mi fondo no se estaba cargando para mi sitio. Miré y me di cuenta de que en mi CSS (SASS en realidad) había especificado la URL de fondo (static/mysite/images/background.gif).Imagen de fondo de Django CSS usando STATIC_URL

Me pregunto cómo debería solucionar este problema. Por supuesto que podría simplemente cambiarlo a mi nueva URL estática, pero parece una mala práctica. Así que traté de cargar mi imagen de fondo, con {{ STATIC_URL }}, en mi HTML body, pero luego procesa primero mi fondo, antes de que el repeat: no-repeat; se muestre en mi CSS real, haciendo que el fondo se repita en toda la pantalla mientras se carga el CSS. De todos modos, no me gusta mezclar mis estilos en mi documento.

Entonces, ¿cuál es la mejor manera de proporcionar una ruta relativa para una imagen de fondo en Django? ¿Debo configurar mi CSS como plantilla y dirigirme a ella a través de una vista? Eso también parece desordenado.

¿O debería olvidarme de convertirlo static_url agnostic, y solo codificarlo en mi CSS?

Respuesta

8

Django compressor!

Se permite representar fragmentos de CSS directamente dentro de su plantilla que finalmente se combinan en un único archivo o incluso se puede especificar opciones para permitir el análisis de los archivos CSS con el motor de plantillas de Django y el contexto: http://django_compressor.readthedocs.org/en/latest/settings/#django.conf.settings.COMPRESS_CSS_FILTERS

Es increíble y vale la pena, ya que no necesita pensar en el rendimiento al administrar CSS.

+0

Woah! Literalmente, simplemente estaba buscando la compresión de archivos estáticos, sin relación con esta pregunta. ¡Muchas gracias! –

+0

@ saul.shanabrook ¡ja! :) Es una gran biblioteca madura. –

Cuestiones relacionadas