2012-11-09 16 views
5

Próbuję użyć django-cumulus do wyświetlania plików poza Rackspace CloudFiles. Obecnie próbuję go tylko na moim lokalnym serwerze dev, używając Django 1.4.2.Jak używać django-cumulus do serwowania plików statycznych?

Mogę użyć polecenia zarządzania cumulus syncstatic, aby pomyślnie przesłać wszystkie moje zasoby statyczne, ale nie mogę wyświetlać ich w mojej witrynie z tymi samymi ustawieniami.

Jeśli moje odpowiednie ustawienia:

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' 

wtedy, gdy biegnę syncstatic wszystkie pliki statyczne Moje aplikacje są przesyłane do /mycontainername/static/, jak będę oczekiwać. Ale po wczytaniu strony do administratora ignoruje ona STATIC_URL i próbuje udostępniać zasoby z adresów URL, takich jak http://uniquekey....r82.cf2.rackcdn.com/path/to/file.css, a nie http://uniquekey....r82.cf2.rackcdn.com/static/path/to/file.css.

Ponadto, nie widzę sposobu, w jaki moje strony publiczne (inne niż administratorskie) używają plików statycznych na CloudFiles, zamiast udostępniania ich z lokalnego katalogu /static/.

Czy brakowało mi jakiegoś ważnego ustawienia, czy też robię coś złego?

Odpowiedz

0

Miałem ten sam problem. Co zrobiłem było

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

edit 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} 

Gdy skończysz, zainstalować go z sudo python setup.py zainstalować

Należy pamiętać, że context_processors. py z django cumulus jest całkiem powolny

+0

Dzięki amdstorm. Przypuszczalnie można uzyskać 'static_url' z' settings' zamiast twardego kodowania go. I nie jestem pewien, czy miałeś zamiar zostawić tam oświadczenie o druku :) –

+0

Nie zamierzałem zostawić tam wydrukowanego wyciągu! Przepraszam! – amdstorm

+0

Uświadomiłem sobie, że podczas kompilacji zasobu statycznego adres statyczny nie jest używany, dlatego użyłem go jako/zła zmienna nazywająca moje złe – amdstorm

Powiązane problemy