Maison >développement back-end >Tutoriel Python >Quelle est la différence entre STATICFILES_DIR, STATIC_ROOT et MEDIA_ROOT dans Django ?
Différences entre STATICFILES_DIR, STATIC_ROOT et MEDIA_ROOT dans Django
Les fichiers statiques dans Django sont des fichiers qui ne changent pas, tels que les images, CSS et JavaScript. Django gère ces fichiers différemment en fonction de leur objectif et de leur utilisation.
STATICFILES_DIR et STATIC_ROOT sont tous deux utilisés pour les fichiers statiques, mais ils servent à des fins différentes. STATICFILES_DIR est utilisé pour spécifier des répertoires supplémentaires dans lesquels Django recherchera les fichiers statiques lors de l'exécution de la commande collectstatic. Ceci est utile si vous souhaitez conserver vos fichiers statiques dans un emplacement distinct du répertoire principal de votre projet, par exemple dans un serveur de fichiers statiques dédié.
STATIC_ROOT est utilisé pour spécifier où Django va collectez tous les fichiers statiques et rendez-les disponibles lorsque votre projet est déployé. Ceci est généralement défini sur un emplacement en dehors du répertoire de votre projet, tel que /home/user/project/django1/top/listing/static dans votre exemple.
MEDIA_ROOT est utilisé pour l'utilisateur- fichiers téléchargés, tels que des images ou des vidéos. Contrairement aux fichiers statiques, les fichiers téléchargés peuvent changer et ne sont généralement pas versionnés. MEDIA_ROOT précise où ces fichiers seront stockés sur le serveur.
Dans votre cas, vous utilisez MEDIA_ROOT pour stocker les photos téléchargées, ce qui est correct. Cependant, lorsque vous avez essayé d'inclure un script JS personnalisé dans votre administrateur, vous avez utilisé STATICFILES_DIRS au lieu de STATIC_ROOT. C'est pourquoi vous rencontriez des erreurs 404 lors du chargement du script JS.
Pour résoudre ce problème, vous pouvez soit :
N'oubliez pas que STATIC_ROOT n'est utilisé que lorsque votre projet est déployé, il est donc recommandé d'utiliser STATICFILES_DIRS pendant le développement et STATIC_ROOT pour le déploiement .
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!