Laravel 11 : Problème d'enregistrement d'images en production

Par LeDorrho, il y a 2 ans


Bonjour je vous ecris afin d'avoir une aide. J'ai conçu un site de blog avec laravel qui fonctionne très bien en local. Mais lors de la mise en production les images d'articles stockées auparavant en local affichent. Cependant en ligne, les enregistrements d'articles fonctionnent sauf pour les images. Pourtant j'ai modifié le fichier .env

Entourez votre code en utilisant "```" pour bien le mettre en forme. (ne copiez pas trop de code)

Ce que je veux

Décrivez ce que vous cherchez à obtenir.

Ce que j'obtiens

Décrivez vos éventuelles erreurs ou ce que vous obtenez à la place de ce que vous attendez :(

4 réponses

popotte, il y a 2 ans

Hello :)

Tu peux montrer ton fichier .env? ( /!\ N'oublies pas de supprimer les données persos genre mots de passe et clés api et aussi le champ APP_KEY avant de poster ici)

Et comment tu héberges les images, où tu as hébergé le site Laravel?

LeDorrho, il y a 2 ans

Voici le contenu du fichier .env

APP_ENV=production APP_KEY= APP_DEBUG=true APP_TIMEZONE=UTC APP_URL=http://localhost APP_LOCALE=en APP_FALLBACK_LOCALE=en APP_FAKER_LOCALE=en_US APP_MAINTENANCE_DRIVER=file APP_MAINTENANCE_STORE=database BCRYPT_ROUNDS=12 LOG_CHANNEL=stack LOG_STACK=single LOG_DEPRECATIONS_CHANNEL=null LOG_LEVEL=debug DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE= DB_USERNAME= DB_PASSWORD= SESSION_DRIVER=database SESSION_LIFETIME=120 SESSION_ENCRYPT=false SESSION_PATH=/ SESSION_DOMAIN=null BROADCAST_CONNECTION=log FILESYSTEM_DISK=local QUEUE_CONNECTION=database CACHE_STORE=database CACHE_PREFIX= MEMCACHED_HOST=127.0.0.1 REDIS_CLIENT=phpredis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 MAIL_MAILER=smtp MAIL_HOST= MAIL_PORT= MAIL_USERNAME= MAIL_PASSWORD= MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS= MAIL_FROM_NAME="${APP_NAME}" AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_DEFAULT_REGION=us-east-1 AWS_BUCKET= AWS_USE_PATH_STYLE_ENDPOINT=false VITE_APP_NAME="${APP_NAME}" ``` Je l'ai hebergé sur LWS
popotte, il y a 2 ans

Ok je vois, alors il faut que tu ajoutes le champ ASSET_URL pour que ça fonctionne, et en valeur tu ajoutes l'url de base de ton hebergeur d'images

APP_ENV=production APP_KEY= APP_DEBUG=true APP_TIMEZONE=UTC APP_URL=http://localhost ASSET_URL=https://base-url.com/

Par exemple tes images sont sur https://base-url.com/images/logo.png

Tu fait asset("images/logo.png") ça va récuperer le ASSET_URL puis ajouter le path pour retourner https://base-url.com/images/logo.png

Si ta base url n'est pas la même que l'url de ton projet (par exemple tu heberges l'image sur Cloudflare R2) dans ce cas faudra penser à configurer le CORS depuis ton projet et depuis l'hébergeur d'images

LeDorrho, il y a 2 ans

Hello Merci.
Au niveau de l'url de base de mon hebergeur. Je suis sur LWS et lorsque je me met dans mon cpanel et que je prend l'URL cela ne fonctionne pas.
""APP_NAME=Laravel""
""APP_ENV=production""
""APP_KEY=""
""APP_DEBUG=true""
""APP_TIMEZONE=UTC""
""APP_URL=http://localhost""
""ASSET_URL=https://web46.lws-hosting.com:2083/cpsess4634726988/frontend/jupiter/filemanager/home/c2347570c/""