Невозможно отобразить загруженное изображение в Laravel - PullRequest
0 голосов
/ 29 февраля 2020

Среда

  • PHP: /7.2.27
  • Laravel: 6.10.1
  • Сервер: nginx / 1.16.0
  • DB: mariadb: 10.4.6
  • dev-environment: Docker

Проблема

Я реализовал функцию загрузки изображений.

Я загрузил изображение, но затем изображение не отображается. Путь выглядит правильно.

Код

Вид

<div class="item-content">
    <img src="{{ $account->user->image_url }}" alt="ユーザー画像" class="user-icon">
    {{Form::label('user_icon', '変更する', ['id' => 'icon-upload'])}}
    {{Form::file('user_icon', ['class'=>'d-none'])}}
</div>

Контроллер

public function update() {
    $validator = $request->validate([
        'user_icon' => 'nullable|image|mimes:jpeg,png,jpg',
        'username' => 'required|max:15', 
    ]);
    $user = Auth::user();

    if ($request->user_icon !== null) {
        $request->user_icon->storeAs('public/images/profile', $user->id . "." . $request->user_icon->getClientOriginalExtension());
        $user->image_url = '/storage/images/profile/' . $user->id . "." . $request->user_icon->getClientOriginalExtension();
    }
    $user->name = $request->name;

    $user->save();
    return redirect->back();
}

Другой

Это также работает правильно в docker контейнер.

php artisan storage:link

И я подтвердил, что он находится на локальном пути.

$ ls public/storage/images/profile/1.jpg 
public/storage/images/profile/1.jpg

И я получаю ошибку 404, когда я получаю доступ к URL, где должно быть изображение .

http::localhost/storage/images/profile/1.jpg

Конечно, изображение отображается неправильно.

enter image description here

Я не могу понять, почему изображение не отображается правильно

...