Django nowa wersja 3.1, plik ustawień ma kilka zmian
Aug 16 2020
W nowej wersji Django 3.1 plik ustawień ma pewne zmiany i przyszedłem zapytać, jak mam kontynuować ustawianie plików statycznych? Sposób, w jaki zwykle robiłem, nie działa bardziej.
Ostatnie wersje:
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
Wersja 3.1:
from pathlib import Path
BASE_DIR = Path(__file__).resolve(strict=True).parent.parent
Zwykle ustawiam moje pliki statyczne w ten sposób:
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')
Jeśli wstawię import os
testament, to zadziała, ale czy jest to właściwa praktyka? Jaka jest najlepsza praktyka, aby to ustawić? Dziękuję Ci?
Odpowiedzi
6 Roham Aug 16 2020 at 18:59
Ta zmiana znacznie ułatwia definiowanie zmiennych STATIC
i MEDIA
. Nie musisz nawet importować os
w tym celu, wystarczy, że dodasz następujące kody do 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"
spróbuj tego, jeśli chcesz dodać STATIC_ROOT do katalogu środowiska