MEDIA_URL et MEDIA_ROOT de Django : résolution des problèmes d'accès aux images
Dans Django, les paramètres MEDIA_URL et MEDIA_ROOT jouent un rôle crucial dans la gestion des fichiers téléchargés et les servir au frontend. Un scénario courant consiste à télécharger une image à l'aide de l'administrateur Django, puis à y accéder via une URL ou sur une page frontale.
Suite au problème présenté, où les téléchargements sont correctement enregistrés mais l'accès à l'URL entraîne une erreur 404. , nous pouvons utiliser des modèles de configuration d'URL pour résoudre ce problème.
Solution pour Django 1.7 et supérieur
Conformément à la documentation de Django 2.1, l'ajout de l'extrait suivant à votre configuration d'URL sera gérer le service des fichiers statiques, y compris les médias téléchargés, pendant le développement :
from django.conf.urls.static import static urlpatterns = patterns(...) + static(MEDIA_URL, document_root=MEDIA_ROOT)
Solution pour Django 1.6 et versions antérieures
Pour les anciennes versions de Django, l'URLconf suivante peut être configuré pour servir des médias statiques :
from django.conf.urls.patterns import patterns, url from django.views.static import serve if settings.DEBUG: urlpatterns += patterns('', url(r'^media/(?P<path>.*)$', serve, {'document_root': MEDIA_ROOT}))
En ajoutant cette configuration, Django servira les fichiers statiques lorsque DEBUG = True (sur la machine locale) pendant le développement. Cependant, pour la production, le serveur Web peut être configuré pour gérer la diffusion de médias statiques lorsque DEBUG = False.
Cette solution vous permet de télécharger et d'accéder avec succès aux images sur une machine locale à l'aide des paramètres MEDIA_URL et MEDIA_ROOT de Django.
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!