2012-06-20 8 views
9

Stavo sperimentando con Django Compressor in sviluppo su un blocco di file css. Ho prima messo i tag {% compress%} attorno a un file, generando f6527e81a37c.css. Poi ho incluso altri due file css tra i tag, ma invece di un file minificato, questo ha portato a 2 file minificati: f6527e81a37c.css ed ee906624f953.css.Compressore Django non rigenerato CSS compresso

Alla fine, volevo concatilizzare e comprimere tutto il blocco css in un file minificato, ma spostare più file nei tag compress non sembra rigenerare le chiavi associate ai file css, vale a dire che si comprime ancora in più file css anche se sono racchiusi nello stesso blocco {% compress%}.

Ho provato a cancellare il memcache di Django, rimuovendo la directory/static/CACHE/che il Compressor genera e utilizzando il comando di compressione management fornito con Django Compressor, ma sto ancora ricevendo più file compressi css quando eseguo il dev ambiente. C'è una sorta di aggiornamento che posso fare in modo che Django Compressor rigeneri le chiavi css associate ai file nel blocco {% compress%}? Il Compressore deve memorizzare come le precedenti chiavi di file compresse da qualche parte.

I risultati di compressione:

<link rel="stylesheet" href="/static/CACHE/css/f6527e81a37c.css" type="text/css" media="screen, projection" /> 
<link rel="stylesheet" href="/static/CACHE/css/ee906624f953.css" type="text/css" /> 
<link rel="stylesheet" href="/static/CACHE/css/7147db857125.css" type="text/css" media="screen, projection" /> 
<link rel="stylesheet" href="/static/CACHE/css/043e7d82b775.css" type="text/css" /> 

settings.py:

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
    #other 
    'compressor.finders.CompressorFinder', 
) 
COMPRESS_ENABLED = True 
COMPRESS_OFFLINE = True 
COMPRESS_CSS_FILTERS = [ 
    #creates absolute urls from relative ones 
    'compressor.filters.css_default.CssAbsoluteFilter', 
    #css minimizer 
    'compressor.filters.cssmin.CSSMinFilter' 
] 
COMPRESS_JS_FILTERS = [ 
    'compressor.filters.jsmin.JSMinFilter' 
] 

risposta

4

ho trovato la mia risposta:

Django compressore stava rompendo i file css intorno quelli che contengono i media = "screen, proiezione" nelle loro proprietà e coloro che non lo fanno.

Grazie per la risposta.

1

Così funziona Django compressore. Ogni volta che c'è una modifica viene generato e usato un nuovo file css. Il vecchio non è cancellato.

Basta eliminare tutti i file css nella directory CACHE e ricaricare la pagina. Dopo questo ci sarà solo uno.

7

Impostare la stessa proprietà media a tutte le dichiarazioni CSS aiuterà.

Il risultato è qualcosa di simile:

<link rel="stylesheet" href="/static/CACHE/css/f6527e81a37c.css" type="text/css" media="all" />