Как обслуживать статические файлы администратора с помощью django.contrib.staticfiles в Django 1.4 (используя один сервер Apache)?

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 по-прежнему не будет обслуживать статические файлы (после переустановки сервера). Где я допустил ошибку в своей логике?

6
задан hobbes3 31 March 2012 в 21:42
поделиться