hTMLファイルで画像を表示したいのですが、リンクフォルダーに移動しますpublic/storage/imageが空ですが、storage/imageでファイルを見つけ、データベースにも保存します。*
@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>
public
ディスクは、一般からアクセスできるファイル用です。デフォルトでは、public
ディスクはローカルドライバーを使用し、これらのファイルをstorage/app/public
に保存します。 Webからアクセスできるようにするには、public/storage
からstorage/app/public
へのシンボリックリンクを作成する必要があります。 Laravel doc
Linux にシンボリックリンクを作成
ln -s source_file myfile
まず最初に。env fileという名前の変数を作成しますFILESYSTEM_DRIVERを作成して-に設定しますpublic
こんな感じ
FILESYSTEM_DRIVER=public
そして、実行によってシンボリックリンクを作成します
php artisan storage:link
その後、ただasset()を使用します
<img src="{{ asset('storage/'.$cv->photo) }}" alt="...">
それはうまくいきます????
filesystems config/file systemsの単純な変更でそれを解決しました:
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
]
へ:
'local' => [
'driver' => 'local',
'root' => storage_path('app/public'),
]
Mayank Majithyaが指摘しているように、シンボリックリンクは_storage/app/public/
_ディレクトリから_public/
_ファイルにアクセスするための1つの一般的な方法であり、実際にはメソッド the Laravel docs 使用する必要があると言います。
これを許可しない共有ホスティングを使用している場合は、Laravelのstorage_path()
ヘルパー関数を次のように使用してみることもできます:<img src="{{ storage_path('subpaths/under/storage/filename.jpg') }}">
( reference )。
また、画像がデータベースに保存されていることにお気づきでしょうか。ファイル全体が格納されていることを意味する場合は、(ファイルが既にディスクに格納されているため)ファイル全体ではなく、データベースにファイルパスのみを格納する方が(ファイルパスがわかったら)より効率的です。次に、モデルを使用してパスを取得できます(たとえば、テーブルに「src」と「alt」の列があると仮定します)。
_<img src="{{ $mymodel->src }}" alt="{{ $mymodel->alt }}">
_
これでうまくいきました。コマンド「Artisan :: call( 'storage:link'、[]);」を追加しました。ルートファイルの先頭に移動し、ストレージフォルダーをパブリックから削除しました。
最初にフォルダを削除することが重要です。そうしないと機能しません。
サーバー上で1回だけ実行する必要があるため、機能している場合、ルートからコードを削除しました。