Django nouvelle version 3.1, le fichier de paramètres a quelques modifications

Aug 16 2020

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 ostestament, mais est-ce la bonne pratique? Quelle est la meilleure pratique pour définir cela? Je vous remercie?

Réponses

6 Roham Aug 16 2020 at 18:59

Cette modification vous permet de définir plus facilement vos variables STATICet 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 Nov 17 2020 at 13:44
STATIC_ROOT = BASE_DIR.parent / "static_cdn"

essayez ceci si vous voulez ajouter votre STATIC_ROOT dans le répertoire d'environnement