You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Valet显示旧同名图片,删除后仍可访问问题求助

Laravel Valet 静态资源缓存问题:替换/删除图片后仍显示旧内容

问题核心是Valet依赖的Nginx默认开启了静态资源缓存机制,导致替换或删除public目录下的图片后,Nginx仍返回缓存的旧内容;而php artisan serve用的是PHP内置服务器,没有缓存,所以会正确返回资源不存在的状态。

解决方法如下:

  1. 强制刷新浏览器缓存
    直接通过浏览器硬刷新跳过本地缓存:Windows/Linux按Ctrl + Shift + R,Mac按Cmd + Shift + R,强制重新请求服务器资源。

  2. 清除Nginx的服务器端缓存
    Valet的Nginx缓存默认存在系统缓存目录,Mac系统执行以下命令清除:

    sudo rm -rf /usr/local/var/nginx/cache/*
    

    执行后再重启Valet:

    valet restart
    

    (Linux系统缓存目录一般为/var/cache/nginx/,替换路径即可)

  3. 给静态资源加版本号(长期方案)
    在图片URL后追加版本参数,比如:

    <img src="/images/avatar.jpg?v=2" alt="Avatar">
    

    每次更新图片时修改版本号,这样浏览器会识别为新资源,避免缓存问题,同时不影响生产环境的缓存策略。

  4. 修改Valet配置禁用静态资源缓存(开发环境专用)
    找到对应站点的Nginx配置文件(路径:~/.valet/Nginx/[你的域名].conf),添加以下配置段:

    location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
        expires -1;
        add_header Cache-Control "no-cache, no-store, must-revalidate";
    }
    

    保存后执行valet restart,这样Nginx就不会缓存指定类型的静态资源,适合开发时频繁修改资源的场景。

内容的提问来源于stack exchange,提问作者Rizki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 00:52:36