Django nouvelle version 3.1, le fichier de paramètres a quelques modifications
Sur Django nouvelle version 3.1, le fichier de paramètres a quelques modifications, et je suis venu me demander comment je dois procéder pour définir mes fichiers statiques? La façon dont je faisais habituellement ne fonctionne pas plus.
Dernières versions:
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
Version 3.1:
from pathlib import Path
BASE_DIR = Path(__file__).resolve(strict=True).parent.parent
Je règle généralement mes fichiers statiques comme ceci:
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')
Si j'insère le import os
testament, mais est-ce la bonne pratique? Quelle est la meilleure pratique pour définir cela? Je vous remercie?
Réponses
6 Roham
Cette modification vous permet de définir plus facilement vos variables STATIC
et MEDIA
. Vous n'avez même pas besoin d'importer os
à cette fin et tout ce dont vous avez besoin est d'ajouter les codes suivants à votre 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
STATIC_ROOT = BASE_DIR.parent / "static_cdn"
essayez ceci si vous voulez ajouter votre STATIC_ROOT dans le répertoire d'environnement