si je mettez une image dans "Storage/App/Public/img/logo.png" et exécutez:
$ php artisan storage:link
Comment puis-je obtenir ce logo.png in vue composant?
<img src="storage/app/public/img/logo.png">
Le demandé c'est bon (200) mais cette image ne rend pas, car est un spa.
Merci,
Eh bien, après faire:
$ php artisan storage:link
Dans mon composant j'ai utilisé:
<img :src="'../storage/img/logo.png'">
merci,
Quand vous utilisez le storage:link
commande, vous créez un lien symbolique entre votre storage/app/public
Dossier et votre public/storage
dossier.
Donc maintenant, vous pouvez trouver vos fichiers à l'URL $BASE_URL/storage/img/logo.png
.
Je vous recommande d'utiliser la fonction asset
-helper à l'intérieur de votre modèle de lame:
<img src="{{ asset('storage/img/logo.png' }}">
Remarque: Assurez-vous de définir les autorisations de fichier appropriées sur le dossier ou d'obtenir une erreur Unauthorized
lorsque vous essayez d'y accéder.
J'espère que ma réponse aidera quelqu'un, créer un lien symbolique en utilisant cette commande
php artisan storage:link
maintenant, utilisez-le dans vous vue Modèle comme suit
/storage/path/to/file
Lorsque vous utilisez php artisan storage:link
Vous créez un lien simbolique à partir de public/storage
À storage/app/public
Je suis habitué à utiliser asset
plutôt chemin régulier: essayez d'utiliser src="{{ asset('storage/app/public/img/logo.png') }}
Il est supposé que si vous utilisez un spa, lorsqu'un composant rend une nouvelle demande d'obtenir le IMG.
J'ai le mien en travaillant avec ce processus:
- Vérifiez
config/filesystems.php
(C.-à-d.: Défaut non modifié):
// If server doesn't support "making symbolic links":
// https://medium.com/@shafiya.ariff23/how-to-store-uploaded-images-in-public-folder-in-laravel-5-8-and-display-them-on-shared-hosting-e31c7f37a737
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
- Enregistrer une image:
$image = $request->file('image'); // something like that
$slug = 'some-slug-99';
$image->storeAs(
'examples' .'/'. $slug,
$image->getClientOriginalName(),
'public'
);
- Créez le symbile à partir de
/storage/app/public
Àpublic/storage
(C.-à-d.: Votre dossier HTML public qui faitasset()
Work In Laravel Modèles de lame, je pense mais ne me cite pas sur ça)
$ php artisan storage:link
- Placez le HTML dans votre Vue Composant:
<img
v-for="image in example.images"
:key="image.filename"
:src="`/storage/examples/${example.slug}/${image.filename}`"
>
Aussi, lisez les documents: https://laravel.com/docs/8.x/fileSystem