Con django-compress
, si trattano CSS e JS come file dinamici, il che va bene. Tuttavia, gli altri file sono statici - e Django non vuole veramente servirli. Dovrebbero essere serviti direttamente da Apache o da altri server web.
Con Apache, devi mettere qualcosa come
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Expires "Thu, 15 Apr 2010 20:00:00 GMT"
</FilesMatch>
nel .htaccess
o la configurazione globale di Apache.
Aggiornamento: Risposta al tuo commento - Mi dispiace non ho capito la sfumatura della tua domanda. Non c'è molto che puoi fare per evitare di usare un URL diverso per indicare a un cliente che un file (ad esempio un'immagine) è cambiato. Questo è raccomandato ad es. Apache e YAHOO!
L'implementazione di questo è IMO non troppo difficile. E 'in due parti:
- utilizzare un tag (ecco una useful snippet) per generare gli URL di versione per i file multimediali che appariranno nel tuo codice HTML. L'URL versione potrebbe essere l'URL di base con la versione inserita, ad es.
/media/3/header.png
dove il file attuale rimane come /media/header.png
sul server.
- utilizzare uno strumento come
mod_rewrite
per convertire gli URL in entrata al valore canonica, cioè una richiesta di /media/3/header.png
viene convertito in /media/header.png
. This article descrive la funzione in modo più dettagliato.
fonte
2009-09-11 15:24:22
So come impostare il futuro lontano scade sulle immagini, ma mi chiedevo se c'è un modo migliore per gestire quando modifico un'immagine. Diciamo che ho header.png con un futuro molto lontano. Quindi lo modifico in Photoshop. Dovrei nominarlo a header1.png e quindi cambiare qualsiasi riferimento nel codice a header1.png. Non è l'ideale per me. –