2012-01-23 15 views
6

Ho appena cambiato il mio backend di archiviazione in Amazon S3 e mi sono reso conto che il mio background non si stava caricando per il mio sito. Ho guardato e realizzato che nel mio CSS (SASS in realtà) avevo specificato l'URL di sfondo (static/mysite/images/background.gif).Immagine di sfondo di Django CSS usando STATIC_URL

Mi chiedo come risolvere questo problema. Certo che io potrei cambiarlo sul mio nuovo URL statico, ma sembra una cattiva pratica. Così ho provato a caricare la mia immagine di sfondo, con il codice body, nel mio codice HTML body, ma prima esegue il rendering del mio sfondo, prima dei rendering repeat: no-repeat; sul mio CSS effettivo, causando la ripetizione dello sfondo sull'intero schermo durante il caricamento del CSS. Ad ogni modo non mi piace mescolare i miei stili nel mio documento.

Quindi qual è il modo migliore per fornire un percorso relativo per un'immagine di sfondo in Django? Devo impostare il mio CSS come modello e indirizzare ad esso attraverso una vista? Anche questo sembra disordinato.

O dovrei semplicemente dimenticarmi di renderlo static_url agnostico, e basta codificare il codice nel mio CSS?

risposta

8

Django compressor!

Esso consente di eseguire il rendering frammenti di CSS direttamente all'interno del vostro modello che in definitiva sono combinati in un singolo file o si può anche specificare le opzioni per consentire l'analisi dei file CSS con il motore di template di Django e il contesto: http://django_compressor.readthedocs.org/en/latest/settings/#django.conf.settings.COMPRESS_CSS_FILTERS

È incredibile e vale la pena, perché non è necessario pensare alle prestazioni quando si gestisce il CSS.

+0

Woah! Stavo letteralmente osservando quello per la compressione dei file statici, non correlato a questa domanda! Grazie mille! –

+0

@ saul.shanabrook hah! :) È una grande biblioteca matura. –