Среда
- 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
Конечно, изображение отображается неправильно.
Я не могу понять, почему изображение не отображается правильно