Я использую Laravel 5.7. На моем локальном хосте мое хранилище работает нормально, и все изображения также отображаются, но на моем хосте новые изображения не отображаются.
Я использую ниже код inisde blade.php
файл:
{{ asset("storage/$slider") }}
На моем локальном хосте показаны изображения:
localhost:8000/storage/sliders/HKeGwcvnXbjuiA6g9wsjnoqphJc5DGup78D92b4F.jpeg
На моем сайте я не могу получить доступ к:
http://mywebsite.com/storage/sliders/HKeGwcvnXbjuiA6g9wsjnoqphJc5DGup78D92b4F.jpeg
Теперь я использую этот маршрут, и он работал:
Route::get('storage/sliders/{filename}', function ($filename)
{
$path = storage_path('app/public/sliders/' . $filename);
if (!File::exists($path)) {
abort(404);
}
$file = File::get($path);
$type = File::mimeType($path);
$response = Response::make($file, 200);
$response->header("Content-Type", $type);
return $response;
});
если у вас есть другие подкаталоги, вы можете использовать:
Route::get('storage/{path}/{filename}', function ($path,$filename)
{
$path = storage_path('app/public/'.$path.'/' . $filename);
if (!File::exists($path)) {
abort(404);
}
$file = File::get($path);
$type = File::mimeType($path);
$response = Response::make($file, 200);
$response->header("Content-Type", $type);
return $response;
});
Других решений пока нет …