2012-11-09 5 views
5

Sto provando a usare django-cumulus per servire i file fuori da Rackspace CloudFiles. Al momento sto provando solo sul mio server di sviluppo locale, usando Django 1.4.2.Come usare django-cumulus per servire file statici?

Posso utilizzare il comando di gestione cumulus syncstatic per caricare correttamente tutte le mie risorse statiche, ma non riesco a visualizzarle sul mio sito con le stesse impostazioni.

Se le mie impostazioni rilevanti sono:

STATIC_URL = '/static/' 
CUMULUS = { 
    'USERNAME': 'myusername', 
    'API_KEY': 'myapikey', 
    'CONTAINER': 'mycontainername', 
    'STATIC_CONTAINER': 'mycontainername', 
} 
DEFAULT_FILE_STORAGE = 'cumulus.storage.CloudFilesStorage' 
STATICFILES_STORAGE = 'cumulus.storage.CloudFilesStaticStorage' 

poi quando corro syncstatic tutti i file statici Le mie applicazioni vengono caricati in /mycontainername/static/, come mi aspetto. Ma quando carico una pagina in admin ignora STATIC_URL e prova a servire risorse da URL come http://uniquekey....r82.cf2.rackcdn.com/path/to/file.css anziché http://uniquekey....r82.cf2.rackcdn.com/static/path/to/file.css.

Inoltre, non riesco a vedere come le mie pagine pubbliche (non di amministrazione) utilizzano i file statici su CloudFiles, anziché servirle da una directory locale /static/.

Ho perso qualche impostazione fondamentale o sto facendo qualcos'altro di sbagliato?

risposta

0

Ho avuto lo stesso problema. Quello che ho fatto è stato quello di

git clone https://github.com/richleland/django-cumulus.git

modificare context_processors.py

from django.conf import settings 

from cumulus.storage import CloudFilesStorage 

def cdn_url(request): 
    """ 
    A context processor to expose the full cdn url in templates. 

    """ 
    cloudfiles_storage = CloudFilesStorage() 
    static_url = '/' 
    container_url = cloudfiles_storage._get_container_url() 
    cdn_url = container_url + static_url 

    print {'CDN_URL': cdn_url} 

    return {'CDN_URL': cdn_url} 

Una volta fatto, installarlo con sudo python setup.py install

Da notare che context_processors. py da django cumulus è in realtà piuttosto lento

+0

Grazie a amdstorm. Presumibilmente si potrebbe ottenere 'static_url' da' settings' invece di codificarlo a fondo. E non sono sicuro se volevi lasciare la dichiarazione di stampa lì :) –

+0

Non intendeva lasciare la dichiarazione di stampa lì! scusa! – amdstorm

+0

mi sono reso conto che quando si compila l'asset statico, l'url statico non viene utilizzato, ecco perchè l'ho usato come// variabile cattiva che nomina il mio male – amdstorm