【问题标题】:Laravel Storage Link Won't Update after Image had Replaced替换图像后 Laravel 存储链接不会更新
【发布时间】: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:cacheview:cache

对我们的问题有任何想法吗?谢谢。

附言。我们在 PHP 7.2 使用 laravel 5.8

更新 1

我已经通过 FTP 检查了图像,是的,文件已更改。但是为什么我的浏览器服务于旧的呢?

更新 2

我还尝试使用此代码删除文件,并且似乎是缓存问题。该图像已被删除,但如果我们尝试通过浏览器上的链接访问该图像,它仍然有效。

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

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    这不是 Laravel 的问题。这是浏览器缓存。最简单的方法是在上传期间重命名文件。例如47.pngrandom_hash.png

    【讨论】:

    • 我已经提到我们在开发者模式下运行并禁用缓存模式
    猜你喜欢
    • 2021-05-17
    • 2017-12-29
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-10
    • 2021-05-24
    • 2019-11-19
    相关资源
    最近更新 更多