Ligação de armazenagem Laravel 5.4
gostaria de mostrar uma imagem no ficheiro html vou para a pasta de ligações público / armazenamento / imagem está em branco, mas no armazenamento / imagem encontro o ficheiro e também é salvo na base de dados.*
@foreach($cvs as $cv)
<div class="col-sm-6 col-md-4">
<div class="thumbnail">
<img src="{{ asset('storage/'.$cv->photo) }}" alt="...">
<div class="caption">
<h3>{{ $cv->titre }}</h3>
<p>{{$cv->presentation}}</p>
<p>
<a href="#" class="btn btn-primary" role="button">Afficher</a>
<a href="#" class="btn btn-success" role="button">Modifier</a>
<a href="#" class="btn btn-danger" role="button">Supprimer</a>
</p>
</div>
</div>
</div>
@endforeach
</div>
</div>
3 answers
O disco public
destina-se a ficheiros que serão acessíveis ao público. Por omissão, o disco public
usa o controlador local e guarda estes ficheiros em storage/app/public
. Para torná-los acessíveis a partir da web, você deve criar um link simbólico de public/storage
para storage/app/public
. Laravel doc
Criar uma ligação simbólica no Linux
ln -s source_file myfile
Como observa Mayank Majithya, uma ligação simbólica é uma forma comum de aceder aos ficheiros storage/app/public/
do directório public/
, e de facto o método o Docs Laravel diz que deve usar.
Se você está em hospedagem compartilhada que não permite isso, você também poderia tentar usar a função auxiliar de Laravel storage_path()
, Assim: <img src="{{ storage_path('subpaths/under/storage/filename.jpg') }}">
(referência .
<img src="{{ $mymodel->src }}" alt="{{ $mymodel->alt }}">
Resolveu - o apenas com uma simples modificação nos sistemas de configuração/ficheiros dos sistemas de ficheiros de:
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
]
To:
'local' => [
'driver' => 'local',
'root' => storage_path('app/public'),
]