Je peux télécharger les fichiers dans le dossier multimédia ('/peaceroot/www/media/'
) que j'ai configuré dans settings.py
comme ci-dessous
MEDIA_ROOT = '/peaceroot/www/media/'
MEDIA_URL = '/media/'
Mais par admin, j'ai essayé d'accéder au fichier image chargé.
http: // localhost: 8000/media/items/1a39246c-4160-4cb2-a842-12a1ffd72b3b.jpg
alors je reçois l'erreur 404.
Le fichier existe à peaceroot/www/media/items/1a39246c-4160-4cb2-a842-12a1ffd72b3b.jpg
Ajouter une entrée d’URL de média dans votre projet urlpatterns:
from Django.conf.urls.static import static
from Django.conf import settings
...
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Le meilleur moyen pour MEDIA_ROOT est,
essayer de rendre dynamique le chemin des supports sera facile lorsque vous décalerez votre projet.
Paramètres.py
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/')
MEDIA_URL = '/media/'
urls.py
from Django.conf import settings
from Django.conf.urls.static import static
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Regarde ça
Juste pour ajouter: au cas où les autres réponses ne fonctionneraient pas pour vous, essayez de placer l’URL statique avant les autres. Ainsi:
urlpatterns = static(...) + [...]
Il se peut que certains de vos modèles de la liste empêchent la demande d’atteindre les gestionnaires statiques. Donc, mettre les gestionnaires statiques en premier résout le problème. Travaillé pour moi