Я сбит с толку static root
и хочу прояснить ситуацию.
Чтобы обслуживать статические файлы в Django, в settings.py
и urls.py
:
import os
PROJECT_DIR=os.path.dirname(__file__)
1. Абсолютный путь к каталогу, в котором должны собираться статические файлы.
STATIC_ROOT= os.path.join(PROJECT_DIR,'static_media/')
2. Префикс URL для статических файлов.
STATIC_URL = '/static/'
3. Дополнительные места для статических файлов.
STATICFILES_DIRS = ( os.path.join(PROJECT_DIR,'static/'),)
... и в urls.py
следующих строках:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += patterns('', (
r'^static/(?P<path>.*)$',
'django.views.static.serve',
{'document_root': settings.STATIC_ROOT}
))
4. Мы также используем python manage.py collectstatic
Вопросы:
Может ли кто-нибудь объяснить мне рабочий процесс: как все должно быть в идеале. На данный момент я копирую / вставляю приведенные выше фрагменты кода в назначенные места и продолжаю создавать новые файлы в статическом каталоге, и это работает. В моем
settings.STATIC_ROOT
, однако, я указал на другой каталог.Было бы здорово, если бы кто-нибудь мог объяснить рабочий процесс каждой настройки: как файлы собираются и управляются, и что было бы хорошей практикой для подражания.
Спасибо.
if settings.DEBUG:
django не очень хорош для обслуживания статических носителей, это следует оставить реальному веб-серверу.