Django рекомендует мне, что если я собираюсь использовать только один сервер (Apache) для обслуживания как динамических, так и статических файлов, то я должен обслуживать статические файлы, используя django.contrib .staticfiles
.
Итак, в моем settings.py
я загрузил django.contrib.staticfiles
в мои INSTALLED_APPS
и django.core.context_processors.static
на мой TEMPLATE_CONTEXT_PROCESSORS
.
Я заметил в шаблонах администратора, что он ссылается на статические файлы следующим образом (из index.html
):
{% load i18n admin_static %}
{% block extrastyle %}{{ block.super }}{% endblock %}
Но глядя на тег шаблона admin_static
, это просто оболочка дляstatic
:
from django.conf import settings
from django.template import Library
register = Library()
if 'django.contrib.staticfiles' in settings.INSTALLED_APPS:
from django.contrib.staticfiles.templatetags.staticfiles import static
else:
from django.templatetags.static import static
static = register.simple_tag(static)
Итак, я пришел к выводу, что, поскольку каждый статический файл администратора серверуется с префиксом admin/...
, полный путь (для моего случая) должен быть
/usr/lib64/python2.7/site-packages/django/contrib/admin/static
Поэтому я установил этот путь к моему STATICFILES_DIRS
внутри settings.py
, но Apache по-прежнему не будет обслуживать статические файлы (после переустановки сервера). Где я допустил ошибку в своей логике?