Djangoは、動的ファイルと静的ファイルの両方を提供するために1つのサーバー(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 }}<link rel="stylesheet" type="text/css" href="{% static "admin/css/dashboard.css" %}" />{% 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は(サーバーを再インストールした後)静的ファイルを提供しません。ロジックのどこを間違えたのですか?