Приложение статических файлов не обслуживает статический носитель автоматически в режиме DEBUG=False
. От django.contrib.staticfiles.urls
:
# Only append if urlpatterns are empty
if settings.DEBUG and not urlpatterns:
urlpatterns += staticfiles_urlpatterns()
Вы можете обслужить его, добавив к своему urlpatterns
вручную или использовать сервер для обслуживания статических файлов (как это предполагается при запуске проектов Django в режиме не-DEBUG).
Хотя мне интересно, почему вы получаете ответ с кодом состояния 500 вместо 404. Что является исключением в этом случае?
EDIT
Так что, если вы все еще хотите обслуживать статические файлы с помощью приложения staticfiles, добавьте следующее к корневому URL-адресу conf (urls.py
):
if settings.DEBUG is False: #if DEBUG is True it will be served automatically
urlpatterns += patterns('',
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}),
)
Некоторые вещи, которые вы должны иметь в виду, хотя:
- не используйте это в производственной среде (это медленнее, поскольку рендеринг статических файлов проходит через Django, а не обслуживается вашим веб-сервером напрямую)
- Скорее всего, вам нужно использовать команды управления для сбора статических файлов в
STATIC_ROOT
(manage.py collectstatic
). См. staticfiles app docs для получения дополнительной информации. Это просто необходимо, поскольку вы работаете в режиме без отладки.
- не забудьте
from django.conf import settings
в вашем urls.py
:)