2012-05-29 4 views
6

Я начал использовать приложение django.contrib.staticfiles для сбора статических файлов в каталог/static/моего проекта.Как переопределить статический сервер разработки django?

Проблема заключается в том, что когда я использую сервер разработки django (manage.py runningerver), он автоматически обслуживает статические файлы.

Обычно это нормально, но в моем случае я хотел бы сам обслуживать эти статические файлы.

Я хотел бы поставить в urls.py файл что-то вроде этого:

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

Проблема в том, что применение «django.contrib.staticfiles» имеет приоритет на «/ статический /» ВПИ при settings.DEBUG = Истина: я не могу найти способ заставить Django использовать мое описание/static/'urlpattern при работе в режиме отладки.

Если я удалю' django.contrib.staticfiles 'из settings.py: my'/static/'urlpattern работает, но я теряю сбор статических файлов.

У вас есть идея использовать «django.contrib.staticfiles» и использовать свой собственный сервер статические файлы через URLPATTERN описания и имеют settins.DEBUG = True

ответ

0

Установите DEBUG в False. Django обслуживает только статические файлы, когда это True.

+1

К сожалению, я разрабатываю, мне нужно отлаживать True! – Eric

5

Я обнаружил, что по умолчанию сам django 'runningerver', preempts/static/urls: даже с помощью специального промежуточного программного обеспечения вы не можете заставить django указывать '/ static /' на ваш код.

Единственное, что я нашел: используйте параметр --nostatic для './manage.py runningerver', тогда вы можете использовать его собственные шаблоны url и представления для обслуживания статических файлов.

Смежные вопросы