web-dev-qa-db-fra.com

Stockage dans laravel dit lien symbolique - aucun fichier de ce type

J'ai déployé laravel app sur l'hébergement partagé dans le dossier public_html/app. Voici tout ce qui se trouve dans le dossier public. Dans /../../files, il me reste des fichiers. Quand je fais du stockage php artisan : lien dans le dossier de fichiers de ma console

[ErrorException]                      
  symlink(): No such file or directory

Sur localhost, je télécharge des fichiers dans un dossier de stockage/uploads. Que faire maintenant? J'ai essayé de changer de lien mais rien ne fonctionne pour moi ...

21
Programmmereg
  1. Aller à /public répertoire et exécutez:

    rm storage

  2. Allez dans le répertoire racine Laravel) et exécutez:

    php artisan storage:link


Edité le 1er mai 2018

Ce problème survient lorsque laravel le projet est déplacé/copié dans un autre dossier.

Le lien de stockage est toujours présent, ce qui provoque l'erreur d'exception. Le dossier public/storage existe et pointe vers un emplacement incorrect. Il doit être supprimé avec rm storage commande.

Après cette course php artisan storage:link in terminal et il créera le lien de stockage.

Cela doit être fait CHAQUE fois où laravel est déplacé/copié/déployé!

100
Turan Zamanlı

Cela se produit généralement après le déplacement de Laravel app dans un autre répertoire

Le répertoire de stockage actuel est "/ NomApp/storage/app/public /"

Laravel crée un lien symbolique pointant vers le répertoire de stockage actuel "/ NomApp/public/stockage"

Autre sens

"/ AppName/public/storage" pointe sur => "/ AppName/storage/app/public /"

En changeant le répertoire racine de l'application en "/ AnotherAppName /", le lien symbolique continuera de pointer vers l'ancien chemin

"/ AnotherAppName/public/storage" => "/ NomApp/storage/app/public /"

ma solution est de mettre à jour manuellement le lien symbolique en utilisant

ln -sfn /AnotherAppName/storage/app/public/ /AnotherAppName/public/storage
6
A Garhy

Je suis face à la même erreur lorsque l’utilisation d’hébergement de partage et mon répertoire public sont déplacés vers public_html ou un répertoire différent, comme par exemple: répertoire du projet dans le nom de la racine "project" et répertoire public dans le nom de la racine "public_html"

lorsqu’il est exécuté par Artisan :: call ('storage: link'); alors face à cette erreur.

Solution: 1er besoin de lier votre répertoire public dans la méthode de registre app/Providers/AppServiceProvider

 $this->app->bind('path.public', function() {
    return base_path('../public_html');
 });

Maintenant, lancez la commande pour qu'elle fonctionne correctement

5
Al-Amin

J'utilisais Vagrant et j'avais le même problème. J'ai enlevé le répertoire de stockage dans public/storage mais n'a pas pu résoudre le problème lors de l'utilisation de la commande php artisan storage:link.

Par conséquent, je me suis connecté avec ssh à ma boîte de courrier errant et ai exécuté la commande là. Cela a fonctionné, donc si vous utilisez Vagrant et rencontrez le même problème, cela pourrait vous aider.

0
MirMSadeghi

essayez de supprimer le lien symbolique de stockage existant, puis essayez php artisan storage: link command

0
ahmedkandil