我正在使用Laravel 5.7。在我的本地主机上,我的存储正常,并且所有图像也都显示,但是在我的主机上,新图像不显示。
我在blade.php
文件中使用以下代码:
{{ asset("storage/$slider") }}
在我的本地主机上,它显示图像:
localhost:8000/storage/sliders/HKeGwcvnXbjuiA6g9wsjnoqphJc5DGup78D92b4F.jpeg
在我的网站上,我无法访问:
http://mywebsite.com/storage/sliders/HKeGwcvnXbjuiA6g9wsjnoqphJc5DGup78D92b4F.jpeg
答案 0 :(得分:1)
现在我使用这条路线并且有效:
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;
});