j ai un projet Django e-commerce en
production. j ai un souci concernant
les fichiers media, qui ne s’affichent
pas.
j ai un projet Django e-commerce en
production. j ai un souci concernant
les fichiers media, qui ne s’affichent
pas.
Welcome @chakool-0 !
— Translated using Google translate:
I have a Django e-commerce project in production. I’m having a problem with the media files, which are not displaying correctly.
— Translation using Google translate:
Si vous avez besoin d’aide à ce sujet, nous aurons besoin de plus de détails concernant le problème et votre environnement de déploiement.
Veuillez décrire plus précisément ce qui ne fonctionne pas.
Recevez-vous des messages d’erreur dans vos fichiers journaux ?
Quelles sont les réponses que vous recevez du serveur ?
Quel serveur web utilisez-vous ? (nginx ? Apache ? Autre ?)
Quel serveur WSGI/ASGI utilisez-vous ? (Gunicorn ? uwsgi ? Autre ?)
Quels sont vos paramètres pour les fichiers multimédias ?
— And the original English:
If you are looking for assistance with this, we will need more details about the issue and your deployment environment.
Please describe in more detail what exactly isn’t working.
Are you getting any error messages in your log files?
What are the responses that you’re getting from the server?
What web server are you using? (nginx? Apache? Something else?)
What wsgi / asgi server are you using? (Gunicorn? uwsgi? Something else?)
What are your settings for your media files?
Bonjour, je suis en phase de production et j utilise des fichiers de test unitaires dont .env ou se trouve DEBUG=False. j utilise Render.com comme domaine.avec le server manage.py runserver le site s ‘affiche mais pas les fichiers media téléversér au niveau django admin. Voici la config de mon settings: STATIC_URL = ‘/static/’
STATICFILES_DIRS = [BASE_DIR / “shop” / “static”]
STATIC_ROOT = BASE_DIR / ‘staticfiles’
MEDIA_URL = ‘/media/’
MEDIA_ROOT = BASE_DIR / ‘media’
WHITENOISE_USE_FINDERS = True
STORAGES = {
"default": {
"BACKEND": "django.core.files.storage.FileSystemStorage",
"OPTIONS": {"location": BASE_DIR / "media"},
j utilise un server waitress-server et IIS pour servir le dossier media
Voici le message d’erreur en générale : WARNING:django.request:Not Found: /media/articles/Ordinateur_HP_neZI2us.png
WARNING:waitress.queue:Task queue depth is 1
WARNING:django.request:Not Found: /media/articles/casque_audio4_0ZajFKC.jpg
WARNING:django.request:Not Found: /media/articles/Croissant_doux_Jcraosx.jpg
WARNING:django.request:Not Found: /media/articles/fruit_orange_Ag6GDoW.webp
WARNING:django.request:Not Found: /media/articles/Basket_homme_GWhsDEI.jpg
WARNING:django.request:Not Found: /media/articles/Soulier_VUGoVgJ.jpg
},
"staticfiles": {
"BACKEND": "whitenoise.storage.CompressedManifestStaticFilesStorage",
},
}
STATICFILES_STORAGE = “whitenoise.storage.CompressedManifestStaticFilesStorage”
*** From translate.google.com
Je pense que la première chose à vérifier est l’existence des fichiers et leur emplacement dans les répertoires appropriés.
Pouvez-vous vérifier le système de fichiers pour vous assurer que les fichiers existent et se trouvent dans le bon répertoire ?
Les noms et les chemins d’accès des fichiers correspondent-ils à ceux enregistrés dans l’objet fichier de la base de données ?
Comment affichez-vous les références à ces fichiers dans vos modèles ?
Quelle est votre configuration IIS pour la diffusion de vos fichiers multimédias ?
*** The original English:
I think the first things to check here is to verify that the files exist and are located in the appropriate directories.
Can you check the file system to verify the files exist and are in the proper directory?
Do the file names and paths match what’s in the file object in the database?
How are you rendering the reference to those files in your templates?
What is your IIS configuration for serving your media files?
Bonjour merci déjà pour votre intérêt. dans mon models j’utilise un ImageField avec upload_to = ‘articles/’. le chemin images : shop(mon app)/static/images. repertoire virtuel : Config IIS : j ai un alias : media avec le chemin C:\Users\issia\Documents\projet\Boulanger\media . alias : static : chemin : C:\Users\issia\Documents\projet\Boulanger\staticfiles. avec les permissions.
j ai copié les images dans le dossier media/articles .
*** From translate.google.com (with manual edits)
Tout d’abord, il est important de bien distinguer les fichiers « static » des fichiers « media ». Ce ne sont pas les mêmes, ils ne sont pas traités de la même manière et ne sont pas gérés de la même façon. De plus, vos paramètres et autres configurations pour les fichiers statiques ne s’appliquent pas aux fichiers multimédias, et inversement.
Vous devez avoir un répertoire « static » exclusivement pour les fichiers statiques. Les fichiers téléchargés par les utilisateurs doivent être placés dans un répertoire « media », qui est complètement différent et distinct.
Si vous utilisez l’interface d’administration de Django pour télécharger ces fichiers, assurez-vous qu’ils sont bien placés dans votre répertoire C:\Users\issia\Documents\projet\Boulanger\media\articles et que le champ image contient la référence correcte à ces fichiers.
Vous devriez ensuite pouvoir effectuer une requête HTTP directement vers ce répertoire multimédia pour récupérer ces fichiers, en contournant complètement Django.
Une fois que vous avez vérifié que vous pouvez accéder directement à ces fichiers, vérifiez ensuite que vous pouvez y accéder via les liens générés par Django. Si ce n’est pas le cas, nous devons examiner comment vous créez ces liens dans vos modèles.
*** The original English
First, you want to mentally separate the concepts of “static” files and “media” files completely. They are not the same, are not handled the same, and are not managed the same. Additionally, your settings and other configurations for static files does not apply to media files and vice versa.
You should have a “static” directory for static files only. User-uploaded files go to a “media” directory, which is something completely different and separate.
If you’re using the Django admin to upload those files, then you want to verify that those files are being placed in your C:\Users\issia\Documents\projet\Boulanger\media\articles directory, and that the image field contains the proper reference to those files.
You should then be able to issue an http request directly to that media directory to retrieve those files, bypassing Django completely.
Once you’ve verified that you can access those files directly, then check to see that you can access them through links generated by Django. If you cannot, then we need to see how you’re creating those links in your templates.
Bonjour, y a t-il un moyen de forcé Django à servir les fichiers media en productions en etant DEBUG=False ?
*** From translate.google.com
Vous ne devriez pas faire cela. C’est pourquoi vous créez des éléments de configuration dans votre serveur web pour les répertoires de médias et de fichiers statiques.
Remarque : Vous ne devriez pas non plus utiliser runserver dans un environnement de production. Citation extraite de la documentation à l’adresse django-admin and manage.py | Django documentation | Django :
Avertissement
N’UTILISEZ PAS CE SERVEUR DANS UN ENVIRONNEMENT DE PRODUCTION.
Ce serveur de développement léger n’a pas fait l’objet d’audits de sécurité ni de tests de performance et n’est donc pas adapté à la production. La prise en charge d’un environnement de production par ce serveur sort du cadre de Django.
*** The original English
You don’t want to do that. That’s the reason why you create configuration items in your web server for the media and static directories.
Side note: You also shouldn’t be using runserver in a production environment. Quoting directly from the docs at django-admin and manage.py | Django documentation | Django
Warning
DO NOT USE THIS SERVER IN A PRODUCTION SETTING.
This lightweight development server has not gone through security audits or performance tests, hence is unsuitable for production. Making this server able to handle a production environment is outside the scope of Django.