Меня смущает 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
я указал на другой каталог. -
Было бы здорово, если бы кто-то мог объяснить рабочий процесс каждого параметра: как файлы собираются и управляются, и что будет хорошей практикой.
Спасибо.