Медиа URL Python Django не работает после установки DEBUG = True

Как указано в теме, мой медиа-адрес сайта Django возвращается 404 после попытки доступа к нему. Все работало безупречно, пока я не хотел закончить процесс разработки и установить

DEBUG = True

в settings.py, чтобы закончить сайт раз и навсегда. Когда я меняю DEBUG обратно на

DEBUG = False

это работает отлично еще раз. Понятия не имею, в чем проблема, есть предложения?

1 ответ

Решение

Это сделано специально: https://docs.djangoproject.com/en/1.7/howto/static-files/

Если вы используете django.contrib.staticfiles, как описано выше, runserver сделает это автоматически, когда для DEBUG установлено значение True.

При этом вы можете использовать следующий обходной путь, изменив urls.py:

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = patterns('',
    # ... the rest of your URLconf goes here ...
) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
  + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Обратите внимание, что это крайне неэффективно и не рекомендуется для производственного использования. Обычно вы должны настроить свой веб-сервер (apache, nginx и т. Д.) Для обслуживания статического и мультимедийного содержимого.

Другие вопросы по тегам