Django推薦我,如果我打算只使用一臺服務器(Apache)來同時提供動態和靜態文件,那麼I should serve static files using django.contrib.staticfiles
。如何在Django 1.4中使用django.contrib.staticfiles管理靜態文件(使用一臺Apache服務器)?
所以在我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
因此,我在settings.py
的內部將該路徑設置爲我的STATICFILES_DIRS
,但Apache仍然不會提供任何靜態文件(在重新聲明服務器之後)。我的邏輯在哪裏出錯?
簡潔,深入而全面,謝謝) – 2015-04-23 17:58:20