You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Laravel Mix本地开发缓存清除:无需mix.version()的替代方法

嘿,这个场景我太熟悉了!在Laravel开发环境里没启用mix.version()的时候,浏览器缓存旧CSS/JS确实是个挺烦人的问题,除了依赖版本化方案,还有不少实用的本地缓存清除方法,我给你整理几个常用的:

本地文件变更后的缓存清除方法
  • 强制浏览器硬刷新:这是最快的临时解决办法——Windows/Linux按Ctrl + Shift + R,Mac按Cmd + Shift + R,直接让浏览器跳过缓存重新拉取所有资源。要是觉得快捷键麻烦,也可以打开浏览器开发者工具的「网络」面板,勾选「禁用缓存」(注意要保持DevTools处于打开状态才会生效)。

  • 针对性清除浏览器缓存:不想全清浏览数据的话,可以去浏览器设置里专门清除缓存的图片和文件。比如Chrome里是「设置」→「隐私和安全」→「清除浏览数据」,只勾选「缓存的图片和文件」,时间范围选「过去一小时」就行,既能清掉旧资源缓存,又不会丢其他浏览数据。

  • 给资源加临时版本参数:在Blade模板里引用CSS/JS时,手动加个动态参数,比如把原来的:

    <link rel="stylesheet" href="{{ asset('css/app.css') }}">
    

    改成:

    <link rel="stylesheet" href="{{ asset('css/app.css?v=' . time()) }}">
    

    每次文件变更后,时间戳会自动更新,浏览器会把它当成新资源重新加载。不过这只是临时方案,正式环境还是乖乖用mix.version()更靠谱。

  • 清除Laravel视图缓存:有时候旧的资源引用会被存在编译后的视图缓存里,这时候跑个命令php artisan view:clear,把编译好的视图文件清掉,就能确保模板里的资源路径是最新的了。

  • 用Mix的热重载自动同步:开发时直接用npm run watch或者npm run hot,Mix会自动监听你的CSS/JS文件变化,编译完成后自动通知浏览器刷新页面,完全不用手动处理缓存,改完代码页面直接更,这也是开发环境最省心的方式。

Laravel文档指出:开发环境通常无需版本化,仅在执行npm run production构建生产环境资源时,才需要启用mix.version()的版本化流程来处理长期缓存问题。

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

火山引擎 最新活动