2013-02-23 15 views
5

Ho qualche problema nel far funzionare il compressore django con CloudFront. Sto eseguendo il comando compress offline per generare i miei file compressi e il file manifest.json. Dopodiché, eseguo collectstatic per caricare i file compressi sul mio bucket S3.Compressore Django - CloudFront e manifest.json

Questi file statici vengono serviti dalle CloudFront, quindi le mie impostazioni sono qualcosa di simile:

STATIC_ROOT = '' 
STATIC_URL = 'http://<my-cloudfront-domain>/somebucket/' 

STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage' 
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage' 

COMPRESS_OFFLINE = True 

Il problema è, CloudFront sta scontando una versione precedente di manifest.json, che significa compressore sta gettando un OfflineGenerationError.

Anche con un backend cache in posizione, sono preoccupato che il file manifest non sia corretto se il server cache è offline o scaricato per qualsiasi motivo.

Mi manca qualcosa qui per assicurarmi di non incorrere in OfflineGenerationError?

+0

hai trovato una soluzione. lo stesso problema qui. –

+0

Sto riscontrando questo problema, ma non riesco a capire perché compress possa accedere a 'manifest.json' tramite l'URL statico invece di utilizzare l'archiviazione di file predefinita; se fosse il secondo, S3 sarebbe stato accessibile direttamente e non ci sarebbe stato nessun problema di cache ... assuming manifest.json non è usato dal client. Non ho ancora visto il mio client tentare di accedervi. – Bryan

risposta

0

Ad ogni modo Amazon CloudFront funziona, è necessario esplicitare i file invalidi fornendo "versioni" dello stesso file, oppure rinunciare e utilizzare un nuovo nome. La cancellazione anticipata sembra costosa e viene fatturata.

Provate a caricare il vostro manifest.json dalla Console AWS e impostate una nuova versione per lo stesso file. Aggiorna gli endpoint CloudFront senza eliminare il file.

Fonte: http://aws.amazon.com/en/cloudfront/ (Versioning Object e Cache argomento invalidazione)