Maison  >  Article  >  développement back-end  >  Quelle est la différence entre STATICFILES_DIR, STATIC_ROOT et MEDIA_ROOT dans Django ?

Quelle est la différence entre STATICFILES_DIR, STATIC_ROOT et MEDIA_ROOT dans Django ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-25 13:23:30240parcourir

What's the Difference Between STATICFILES_DIR, STATIC_ROOT, and MEDIA_ROOT in 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 :

  • Utiliser STATIC_ROOT pour spécifier l'emplacement de vos fichiers statiques et ajoutez le script JS personnalisé à cet emplacement.
  • Utilisez STATICFILES_DIRS pour ajouter un répertoire supplémentaire dans lequel Django recherchera les fichiers statiques et ajoutera le script JS à ce répertoire.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn