2014-04-22 19 views
38

Tôi mới dùng django! Khi tôi sử dụng lệnh python manage.py collectstatic Tôi nhận được lỗi nàyKhông thể thực hiện collectstatic

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

Nhưng tôi có thể chạy thành công máy chủ.

file tờ khai tĩnh của tôi là:

STATIC_ROOT = '' 

STATIC_URL = '/static/' 


STATICFILES_DIRS = (

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

và debug được thiết lập là true

DEBUG = True 

Làm thế nào tôi có thể sửa lỗi này? Khác đang thiếu bất kỳ gói cài đặt nào?

+2

Bạn không hiểu gì về thông báo lỗi rất rõ ràng đó? Bạn chưa đặt STATIC_ROOT thành đường dẫn tệp. –

+0

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

Trả lời

80

Hãy thử điều này,

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

Nhìn vào https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-STATIC_ROOT

+0

Cảm ơn :) Hoạt động! Trước khi tôi đang sử dụng ứng dụng này với gốc tĩnh là trống. Nhưng nó đã hoạt động! Điều gì có thể là vấn đề bây giờ? – user3383301

+0

Bạn cần xác định thư mục tĩnh. Tất cả các tệp tĩnh được thu thập trong thư mục đó. 'Bạn đang sử dụng ứng dụng staticfiles mà không đặt cài đặt STATIC_ROOT thành đường dẫn hệ thống tệp' – dhana

+0

Cảm ơn oky :) – user3383301

8

Bạn phải có để cung cấp cho đường dẫn trong STATIC_ROOT trong settings.py nơi tất cả các file tĩnh của bạn được thu thập như ví dụ: -

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

STATIC_URL = '/static/' 

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

    ) 
Các vấn đề liên quan