怎么利用缓存优先策略处理 Vue 应用静态资源?

大浩吖_5250

大浩吖_5250

2026-06-05

535人浏览

原创

核心是“内容变则路径变”,用contenthash生成带内容指纹的文件名,确保js/css/图片内容变更时文件名自动更新;vue cli需配置[contenthash:8],vite默认支持但public目录文件不参与哈希;静态资源配immutable长期缓存,index.html必须禁用强缓存。

怎么利用缓存优先策略处理 vue 应用静态资源?

核心是“内容变则路径变”,让浏览器自然加载新资源,而不是靠清缓存或强制刷新。

用 contenthash 生成带内容指纹的文件名

Webpack(Vue CLI)和 Vite 都默认支持基于文件内容生成哈希值,确保只要代码、样式或图片内容有改动,输出的文件名就会变化:

  • Vue CLI:在 vue.config.js 中确认 filenamechunkFilename[contenthash:8],例如 js/app.[contenthash:8].js
  • Vite:默认开启,构建后 JS/CSS 文件自动带 hash,如 index.e9a2f3b4.js;如需调整,可在 vite.config.tsbuild.rollupOptions.output 中配置
  • 注意:public 目录下的文件(如 favicon.ico、robots.txt)不参与哈希,它们原样复制,适合放无需版本控制的静态资源

服务端配强缓存头,但 index.html 除外

静态资源(JS/CSS/图片等)可设长期缓存,而 HTML 入口必须禁用强缓存,否则用户永远看不到新资源引用:

Nginx Config Creator
Nginx Config Creator

创建 Nginx/OpenResty 反向代理配置文件并重载服务器。包含安全检查和环境感知功能。主要参数:服务名、域名、端口。

下载
  • /assets//static/ 路径,返回 Cache-Control: public, immutable, max-age=31536000(即 1 年)
  • index.html,返回 Cache-Control: no-cachemax-age=0, must-revalidate,强制每次请求都校验
  • Nginx 示例:
    location /assets {<br>  expires 1y;<br>  add_header Cache-Control "public, immutable";<br>}

利用协商缓存提升验证效率

即使设了 long-term cache,浏览器仍可能发条件请求(如带 If-None-Match)来确认资源是否变更。配合 ETag 或 Last-Modified 可减少传输量:

  • Webpack 构建产物默认支持 ETag(由文件内容决定),无需额外配置
  • 服务端(如 Nginx)启用 etag on; 即可生效
  • 当资源未变时,服务器返回 304 Not Modified,不传正文,节省带宽

路由与组件级缓存协同使用

静态资源缓存解决的是“文件更新同步”问题,而组件缓存(如 KeepAlive)解决的是“用户交互体验”问题,二者互补:

  • <keepalive></keepalive> 缓存标签页、表单页等高频切换的组件,保留状态和滚动位置
  • 配合 include/exclude 精确控制哪些组件进缓存,避免内存堆积
  • 被缓存组件可用 onActivatedonDeactivated 做数据拉取或清理,比如进入时刷新列表、离开时暂停轮询

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vue vue cli vite nginx

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2023

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

4303

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

5410

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

4858

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

683

5

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.09

2803

4

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

2023.11.14

774

3

HTTP 503错误解决方法
HTTP 503错误解决方法

HTTP 503错误表示服务器暂时无法处理请求。想了解更多http错误代码的相关内容,可以阅读本专题下面的文章。

2024.03.12

6046

8

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.08.16

5210

6

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
uni-app快速上手
uni-app快速上手

共0课时 | 0人学习

Vue 教程
Vue 教程

共42课时 | 16.6万人学习

Vue3.x 工具篇--十天技能课堂
Vue3.x 工具篇--十天技能课堂

共26课时 | 2.4万人学习