Django новая версия 3.1, в файле настроек внесены некоторые изменения

#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 в каталог среды