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

이 변경으로 STATICMEDIA변수 를 훨씬 쉽게 정의 할 수 있습니다 . 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를 추가하려면 이것을 시도하십시오.