【发布时间】:2020-10-08 04:36:06
【问题描述】:
我已经通过这个命令创建了存储链接
php artisan storage:link
存储链接很好,我可以通过浏览器访问该文件。我想在该存储链接public/uploads/images/account/47.png 上保存用户个人资料图片的想法。我的 laravel 充当 Web 服务(仅提供 RESTFUL API)到另一个系统(让说反应应用程序 + HTML 在另一个域上)
如果我们需要访问用户个人资料图片,这是来自 API 的响应
"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;
对我们的问题有任何想法吗?谢谢。
附言。我们在 PHP 7.2 使用 laravel 5.8
更新 1
我已经通过 FTP 检查了图像,是的,文件已更改。但是为什么我的浏览器服务于旧的呢?
更新 2
我还尝试使用此代码删除文件,并且似乎是缓存问题。该图像已被删除,但如果我们尝试通过浏览器上的链接访问该图像,它仍然有效。
$aaa = Storage::disk('public')->delete('images/account/'. $pq010->p9_pq010_acctid.'.png');
【问题讨论】: