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

Aug 16 2020

В 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будет работать, но правильно ли это? Как лучше всего это установить? Спасибо?

Ответы

6 Roham Aug 16 2020 at 18:59

Это изменение делает его намного проще для вас , чтобы определить ваши 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/'
Ankit Nov 17 2020 at 13:44
STATIC_ROOT = BASE_DIR.parent / "static_cdn"

попробуйте это, если вы хотите добавить свой STATIC_ROOT в каталог среды