Ответ 1
Если вы хотите знать, где находится BASE_DIR, вы можете распечатать его на терминал, просто добавьте эту строку в свои настройки .py:
print "base dir path", BASE_DIR
и runerver для просмотра результатов.
Django новичок здесь. Мне трудно понять смысл:
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
и
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'static')
STATICFILES_DIRS = (
os.path.join(os.path.dirname(BASE_DIR), "static", "static"),
)
Что здесь происходит?
Я считаю, что " файл" - это файл settings.py, в котором мы находимся (?), поэтому BASE_Dir - это две папки из этого...? то есть с файлом manage.py?
Итак, STATIC_ROOT, будет один? или два? каталоги вверх от BASE_DIR. Будет ли для меня создана STATIC_ROOT FOLDER? Или мне нужно сделать так называемый "статический"?
└── MY_PROJECT
├── BASE_DIR
│ ├── MY_APP
│ │ └── settings.py
│ └── manage.py
└── static
Правильно ли это для этого примера? Тогда какая черта/где черт будет STATIC_FILES_DIRS?
Если вы хотите знать, где находится BASE_DIR, вы можете распечатать его на терминал, просто добавьте эту строку в свои настройки .py:
print "base dir path", BASE_DIR
и runerver для просмотра результатов.
Если ваш settings.py настроен следующим образом, ваша файловая система выглядит так:
└── MY_PROJECT
├── BASE_DIR
│ ├── MY_APP
│ │ └── settings.py
│ └── manage.py
└── static -> STATIC_ROOT
└── static -> STATICFILES_DIRS
Но это не очень хорошая конфигурация, потому что она смешивает собранную статистику и каталог, в котором Django пытается найти статические файлы (например, их собирать). Может быть, лучше использовать это:
└── MY_PROJECT
└── BASE_DIR
├── my_app
│ ├── settings.py
│ └── static -> STATICFILES_DIRS
├── manage.py
└── deployment
├── collected_static -> STATIC_ROOT
└── media -> MEDIA_ROOT
# settings.py
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
STATICFILES_DIRS = (os.path.join(
BASE_DIR, "my_app", "static"),)
STATIC_ROOT = os.path.join(
os.path.dirname(BASE_DIR), "deployment", "collected_static")
MEDIA_ROOT = os.path.join(
os.path.dirname(BASE_DIR), "deployment", "media")
Теперь вы можете легко развернуть свои статические и мультимедийные файлы с помощью своего любимого веб-сервера (Apache, Nginx и т.д.), указав его в каталог "развертывание".
Update:
Я добавил также рекомендуемую конфигурацию для MEDIA_ROOT и изменил путь для собранного статического файла.
BASE_DIR - это каталог проектов Django. В том же каталоге, где находится manage.py.