Разница между статическими STATIC_URL и STATIC_ROOT в Django

Меня смущает статический корень , и я хочу прояснить ситуацию.

Для обслуживания статических файлов в 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

Вопросы:

  1. Не могли бы вы объяснить мне рабочий процесс: как все должно быть сделано в идеале. На данный момент я копирую / вставляю приведенные выше фрагменты кода в назначенные места и продолжаю создавать новые файлы в статическом каталоге, и это работает. Однако в моем settings.STATIC_ROOT я указал на другой каталог.

  2. Было бы здорово, если бы кто-нибудь мог объяснить рабочий процесс каждой настройки: как файлы собираются и управляются, и что было бы хорошей практикой для подражания.

Спасибо.

109
задан ivanleoncz 29 June 2019 в 03:26
поделиться