Laravel 5.1アプリでは、画像をstorage / app / uploadsフォルダーに保存しています。
私のlocal
ディスク:
<?php
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app/uploads'),
],
// other configuration...
?>
<img>
タグのソースなど、アップロード後に画像ファイルを使用する方法がわかりません。基本的に、画像への有効なパスを取得して、ページで使用できるようにする必要があります。
展開には、ソリューションを提供するEnvoyerを使用しています。Envoyerのドキュメントによると:
ユーザーがアップロードしたファイルを保存する場合、Laravelを使用している場合は、それらをアプリケーションのストレージディレクトリに保存する必要があります。次に、Envoyerの「リンクフォルダの管理」機能を使用して、パブリックディレクトリからストレージディレクトリへのシンボリックリンクを作成できます。[リンクされたフォルダーの管理]ボタンは、プロジェクトの[展開フック]タブにあります。
..そしてこれは明らかです。
しかし、ローカル開発環境でストレージフォルダーとパブリックフォルダーを「リンク」するにはどうすればよいですか?Laravelはそれを行う方法を提供しますか、それとも自分の環境でシンボリックリンクを手動で作成する必要がありますか?
いくつかのオプションがあります:
ファイルを出力するコントローラーを作成します
class AssetController {
public function show($id) {
$file = File::findOrFail($id);
return Response::make(Storage::get($file->storage_key), 200, ['Content-Type' => $file->mime_type]);
}
}
シンボリックリンクを作成するpublic / assets => storage / app /
ストレージ/アプリではなくパブリック/アセットにファイルをアップロードする
Webサーバーでリライトを使用して、ストレージ/アプリフォルダーからファイルを提供します。その方法は、使用しているWebサーバーによって異なります。以下のためにnginxのあなたのようなものを使用することができます
rewrite ^/v1/assets/(\d+) /../storage/app/$1;
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加