#python #django #django-settings
#питон #django #django-настройки #python
Вопрос:
В Django новой версии 3.1 в файле настроек есть некоторые изменения, и я пришел спросить, как мне приступить к настройке моих статических файлов? Способ, которым я обычно пользовался, больше не работает.
Последние версии:
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
Версия 3.1:
from pathlib import Path
BASE_DIR = Path(__file__).resolve(strict=True).parent.parent
Обычно я устанавливаю свои статические файлы следующим образом:
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static_root')
MEDIA_ROOT = os.path.join(BASE_DIR, 'media_root')
Если я вставлю import os
, это сработает, но правильная ли это практика?
Как лучше всего это установить?
Спасибо?
Ответ №1:
Это изменение значительно упрощает определение ваших STATIC
и MEDIA
переменных. Вам даже не нужно импортировать os
для этой цели, и все, что вам нужно, это добавить следующие коды в свой settings.py
:
BASE_DIR = Path(__file__).resolve(strict=True).parent.parent # which shows the root directory of your project
STATIC_ROOT = BASE_DIR / 'static' # is equal to os.path.join(BASE_DIR, 'static/')
STATIC_URL = '/static/'
MEDIA_ROOT = BASE_DIR / 'media' # is equal to os.path.join(BASE_DIR, 'media/')
MEDIA_URL = '/media/'
Ответ №2:
STATIC_ROOT = BASE_DIR.parent / "static_cdn"
попробуйте это, если вы хотите добавить свой STATIC_ROOT в каталог среды