Laravel Ссылка на хранилище не обновляется после замены образа - PullRequest
0 голосов
/ 18 июня 2020

Я создал ссылку на хранилище с помощью этой команды

php artisan storage:link

Ссылка на хранилище в порядке, и я могу получить доступ к этому файлу через браузер. Идея в том, что я хотел сохранить изображение профиля пользователя на этой ссылке хранилища public/uploads/images/account/47.png. Мой laravel действует как веб-служба (обслуживает только RESTFUL API) для другой системы (пусть это приложение реагирует + HTML в другом домене)

Вот ответ API, если нам требуется доступ к профилю пользователя picture

"acctType": "BS",
"regDt": "2020-05-15 10:36:26",
"photo": "https://abc.xyz/public/uploads/images/account/47.png",

Проблема в том, что каждый раз, когда мы обновляем / заменяем 47.png, и мы получаем доступ через браузер, вводя этот URL https://abc.xyz/public/uploads/images/account/47.png изображение не изменилось.

Вот код на laravel - PHP

if($request->hasFile('photo')){
$storage = Storage::putFileAs('public/images/account', $request->photo, $pq010->p9_pq010_acctid.'.png');
$storage_public = Storage::disk('public')->putFileAs('images/account', $request->photo, $pq010->p9_pq010_acctid.'.png');

Я не уверен, что здесь произошло. У нас есть очистка кеша браузера (отключение кеша в инструментах разработчика) и попытка clear:cache, view:cache;

Есть идеи о нашей проблеме? спасибо.

Пс. Мы используем laravel 5.8 в PHP 7.2

Обновление 1

Я проверил изображение по FTP, да, файл изменился. Но почему мой браузер обслуживает старый?

Обновление 2

Я тоже пытаюсь удалить файл с этим кодом и, похоже, проблема с кешированием. Изображение было удалено, но если мы пытаемся получить доступ к изображению через ссылку в браузере, оно все еще работает.

$aaa = Storage::disk('public')->delete('images/account/'. $pq010->p9_pq010_acctid.'.png');

1 Ответ

0 голосов
/ 18 июня 2020

Это не проблема Laravel. Это кеширование браузера. Самый простой способ - переименовать файл во время загрузки. Например, от 47.png до random_hash.png.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...