2012-05-29 31 views
6

Tôi bắt đầu sử dụng ứng dụng 'django.contrib.staticfiles' để thu thập các tệp tĩnh vào thư mục/static/của dự án của tôi.Làm thế nào để ghi đè lên máy chủ phát triển tập tin tĩnh django?

Vấn đề là khi tôi đang sử dụng máy chủ phát triển django (manage.py runserver), nó sẽ tự động phục vụ các tệp tĩnh.

Thường thì tốt, nhưng trong trường hợp của tôi, tôi muốn tự mình phân phối các tệp tĩnh này.

Tôi muốn đặt trong file urls.py một cái gì đó như thế:

urlpatterns += patterns('', 
     url('^static/(?P<path>.*)$', myStaticMediaServe,{'document_root': settings.STATIC_ROOT ,'show_indexes': True}), 
     ) 

Vấn đề là ứng dụng 'django.contrib.staticfiles' đã có những ưu tiên về '/ tĩnh /' url khi settings.DEBUG = True: Tôi không thể tìm cách tạo Django sử dụng mô tả url/'/ static /' của tôi khi đang ở chế độ gỡ lỗi

Nếu tôi xóa 'django.contrib.staticfiles' khỏi settings.py: my '/ static/'urlpattern hoạt động nhưng tôi mất tập tin tĩnh thu thập.

Bạn có một ý tưởng để sử dụng 'django.contrib.staticfiles' AND sử dụng các tập tin tĩnh của máy chủ của mình thông qua một mô tả URLPATTERN VÀ có settins.DEBUG = True

Trả lời

0

Đặt DEBUG-False. Django chỉ phục vụ các tệp tĩnh khi là True.

+1

không may, tôi đang phát triển, tôi cần gỡ lỗi thành True! – Eric

5

Tôi thấy rằng, theo mặc định, django 'runserver' chính nó, tiền/tĩnh/url: ngay cả với middleware tùy chỉnh, bạn không thể buộc django trỏ '/ static /' vào mã của bạn.

Giải pháp duy nhất tôi tìm thấy: sử dụng tùy chọn --nostatic cho './manage.py runserver', sau đó người ta có thể sử dụng mẫu và chế độ xem url của riêng mình để phân phát tệp tĩnh.

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