1

我正在使用 Laravel 5.7。在我的本地主机上,我的存储工作正常,并且所有图像也显示,但在我的主机上,新图像不显示。

我在文件中使用以下代码blade.php

{{ asset("storage/$slider") }}

在我的本地主机上,它显示图像:

localhost:8000/storage/sliders/HKeGwcvnXbjuiA6g9wsjnoqphJc5DGup78D92b4F.jpeg

在我的网站上,我无法访问:

http://mywebsite.com/storage/sliders/HKeGwcvnXbjuiA6g9wsjnoqphJc5DGup78D92b4F.jpeg

4

1 回答 1

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;
});
于 2018-12-13T18:36:03.780 回答