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