news 2026/5/5 19:46:42

Web前端 网页版本更新时同时更新浏览器缓存

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Web前端 网页版本更新时同时更新浏览器缓存

目录

一、问题引出

二、解决方案

1、入口文件

2、设置版本号

3、静态资源


一、问题引出

Web 前端如何优雅解决「版本更新与浏览器缓存冲突」问题?实现更新必刷新缓存、未更则复用缓存的闭环管控,同时满足配置简洁、维护成本低、适配纯静态前端项目的要求?

二、解决方案

本次以NextJS框架为例。

1、入口文件

使用禁用浏览器缓存设置:

{/* 不使用浏览器缓存 */} <meta httpEquiv="pragram" content="no-cache" /> <meta httpEquiv="cache-control" content="no-cache, no-store, must-revalidate" /> <meta httpEquiv="expires" content="0" />

2、设置版本号

需要设置你的版本号,每次更新时修改此版本号,Nextjs推荐在环境变量中设置:

# APP版本,更新版本刷新浏览器缓存 NEXT_PUBLIC_APP_VERSION=1.0.0

3、静态资源

统一使用?v=app_version:

// 读取环境变量版本号 export const APP_VERSION = process.env.NEXT_PUBLIC_APP_VERSION || '1.0.0'; // 版本号拼接工具函数:显式标注入参/返回值 export const withVersion = (url: string): string => { // 简单容错:避免重复拼接?v=(可选,提升鲁棒性) return url.includes('?v=') ? url : `${url}?v=${APP_VERSION}`; };

使用:

withVersion("图片/字体/js")

什么时候用:

资源类型导入 / 使用方式是否需要手动加版本号原因
全局 CSS(模块化导入)import '@/styles/global.css'❌ 不需要Next.js 自动生成哈希后缀
第三方静态 CSS(如 iconfont)<link rel="stylesheet" href="xxx.css" />✅ 需要原生标签引入,无自动版本化
图片 / Icon/SVG<Image src="xxx.png" />/<img src="xxx.png" />✅ 需要静态资源,无自动版本化
静态脚本 / 字体文件<script src="xxx.js" />/<link href="xxx.woff2" />✅ 需要原生标签引入,无自动版本化
JS 模块(import 导入)import utils from '@/utils/xxx'❌ 不需要Webpack/Next.js 自动分包并生成哈希

next直接引入的会进行自动版本打包不需要我们配置version,script等静态标签中的需要手动加:

如这种或路径引入的图片:

<link rel="stylesheet" href={withVersion('/fonts/iconfont/iconfont.css')} />
<img src={withVersion('/img/xxx.png')} alt="xxx" />

最终,我们实现了,在版本号未更新时使用浏览器缓存,版本号更新时资源也会更新的效果。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/5 9:04:48

AI效率加速器工具的基础版与专业版功能差异:10款工具详解

&#xfffd;&#xfffd; 10大降AIGC平台核心对比速览 排名 工具名称 降AIGC效率 适用场景 免费/付费 1 askpaper ⭐⭐⭐⭐⭐ 学术论文精准降AI 付费 2 秒篇 ⭐⭐⭐⭐⭐ 快速降AIGC降重 付费 3 Aibiye ⭐⭐⭐⭐ 多学科论文降AI 付费 4 Aicheck ⭐⭐⭐⭐…

作者头像 李华
网站建设 2026/4/24 17:30:41

借助 Kafka 提升大数据平台的实时响应能力

从离线到实时:用Kafka重构大数据平台的响应能力 引言:你也在为“数据延迟”头疼吗? 凌晨3点,电商运营小张揉着眼睛盯着屏幕——昨天大促的销售报表终于跑出来了,但页面上“库存预警”的红色数字让他倒吸一口凉气:某款爆品的库存已经售罄2小时,而离线系统直到现在才提示…

作者头像 李华
网站建设 2026/4/30 5:15:58

数据资产治理:提升数据质量的5大策略

数据资产治理实战&#xff1a;提升数据质量的5大核心策略&#xff08;附落地指南&#xff09; 引言&#xff1a;别让“坏数据”毁了你的业务 你有没有遇到过这样的场景&#xff1f; 市场部做活动复盘时&#xff0c;发现同一款产品的销售额在CRM系统和财务系统里差了20%&…

作者头像 李华
网站建设 2026/4/29 2:15:22

基于springboot+vue的社区资源共享系统设计与实现

社区资源共享系统的背景 随着城市化进程加快和社区规模扩大&#xff0c;社区居民对资源的高效共享需求日益增长。传统线下资源共享模式存在信息不对称、管理效率低下等问题。数字化平台能有效解决资源闲置与需求错配的矛盾&#xff0c;提升社区资源利用率。 技术选型的优势 …

作者头像 李华
网站建设 2026/5/1 6:14:49

【电路笔记】-非稳态多谐振荡器

非稳态多谐振荡器 文章目录 非稳态多谐振荡器 1、非稳态多谐振荡器 2、非稳态多谐振荡器波形 2.1 非稳态多谐振荡器示例 1 2.2 非稳态多谐振荡器示例 2 3、非稳态多谐振荡器驱动电路 非稳态多谐振荡器是自由运行的振荡器,在两种状态之间振荡,不断产生两个方波输出波形。 1、非…

作者头像 李华
网站建设 2026/5/1 9:38:34

基于 Netty 的 TCP Socket 服务端完整实现(生产级增强版)

🚀 基于 Netty 的 TCP Socket 服务端完整实现(生产级增强版) 本文在一个完整可运行的 Netty TCP 服务端示例基础上,逐步引入 协议设计、心跳机制、连接管理、粘包拆包、生产级优化实践, 帮你从「能跑 Demo」升级到「可用于真实生产环境」。 一、整体架构设计 📌 核心能…

作者头像 李华