2014-04-22 22 views
38

Jestem nowy w django! Kiedy użyć polecenia python manage.py collectstatic otrzymuję ten błądNie można wykonać funkcji kolekcjonowania

django.core.exceptions.ImproperlyConfigured: You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path 

Ale mogę z powodzeniem uruchomić serwer.

Moi statyczne deklaracje pliki są:

STATIC_ROOT = '' 

STATIC_URL = '/static/' 


STATICFILES_DIRS = (

    ('assets', os.path.join(PROJECT_DIR, '../static')), 
) 

i debugowania jest ustawiony na true

DEBUG = True 

Jak mogę rozwiązać ten problem? Czy brakuje też pakietów instalacyjnych?

+2

Czego nie rozumiesz w związku z tym bardzo wyraźnym komunikatem o błędzie? Nie ustawiłeś STATIC_ROOT na ścieżkę pliku. –

+0

heroku http://stackoverflow.com/questions/21141315/django-static-files-on-onoku –

Odpowiedz

80

Spróbuj tego,

PROJECT_DIR = os.path.dirname(os.path.abspath(__file__)) 
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static') 

Spójrz na https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-STATIC_ROOT

+0

Dzięki :) Działa! Zanim użyłem tej aplikacji ze statycznym katalogiem głównym jako pustym. Ale zadziałało! Co może być teraz problemem? – user3383301

+0

Potrzebujesz zdefiniować statyczny folder. Aby wszystkie statyczne pliki zostały zebrane w tym folderze. 'Używasz aplikacji statycznych plików bez ustawiania ustawienia STATIC_ROOT na ścieżkę do systemu plików' – dhana

+0

Okayy dzięki :) – user3383301

8

Musisz dać ścieżkę STATIC_ROOT w settings.py, gdzie wszystkie pliki są pobierane statyczne jak na przykład: -

STATIC_ROOT = "app-root/repo/wsgi/static" 

STATIC_URL = '/static/' 

STATICFILES_DIRS = (
    ('assets', 'app-root/repo/wsgi/openshift/static'), 

    )