vue2 如何设置让 第三方类库或者静态资源,比如echarts 包 或者 element-ui 设置为强缓存

1. 对于使用 Vue CLI 创建的项目

可以通过配置 vue.config.js 中的 chainWebpack 来设置静态资源的缓存策略,然后结合服务器配置实现强缓存。

lua 复制代码
// vue.config.js module.exports = { chainWebpack: config => { // 对第三方库设置长时间的缓存 config.output .filename('js/[name].[contenthash:8].js') .chunkFilename('js/[name].[contenthash:8].js') // 对图片等静态资源设置缓存 config.module .rule('images') .use('url-loader') .tap(options => { options.name = 'img/[name].[hash:8].[ext]' return options }) } }

2. 服务器配置(关键)

强缓存主要通过服务器设置 Cache-ControlExpires 响应头来实现。

Nginx 配置示例:

javascript 复制代码
# 对 node_modules 中的第三方库设置强缓存(30天) location ~* /node_modules/(.*)\.(js|css)$ { expires 30d; add_header Cache-Control "public, max-age=2592000"; } # 对静态资源设置强缓存 location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ { # 排除 index.html,避免其被缓存 if ($request_filename ~* ^.+\.(html)$) { expires -1; add_header Cache-Control "no-cache, no-store"; } # 其他静态资源缓存30天 expires 30d; add_header Cache-Control "public, max-age=2592000"; }

Apache 配置示例(.htaccess):

arduino 复制代码
# 对第三方库和静态资源设置强缓存 <IfModule mod_expires.c> ExpiresActive On # 脚本和样式文件缓存30天 ExpiresByType text/css "access plus 30 days" ExpiresByType application/javascript "access plus 30 days" # 图片文件缓存30天 ExpiresByType image/jpeg "access plus 30 days" ExpiresByType image/png "access plus 30 days" ExpiresByType image/svg+xml "access plus 30 days" # 设置Cache-Control头 Header set Cache-Control "public" </IfModule>

3. 关键说明

  • 强缓存原理 :通过设置 Cache-Control: max-age=xxxExpires 头,浏览器会在有效期内直接使用本地缓存,不向服务器发送请求

  • 缓存有效期:第三方库(如 echarts、element-ui)更新频率低,可以设置较长缓存(如 30 天)

  • 避免缓存问题

    • 对经常变动的文件(如 index.html)禁用缓存

    • 使用内容哈希(contenthash)命名文件,确保文件内容变化时文件名变化,从而绕过缓存

    • 对于可能更新的第三方库,建议使用 CDN 并利用其缓存策略

通过以上配置,既能实现第三方库和静态资源的强缓存以提高加载速度,又能确保在文件更新时用户能获取到最新版本。

相关推荐
AI服务老曹2 小时前
边云协同视频分析性能优化指南:多站点部署下的资源瓶颈突破与调优实战
性能优化·音视频
A_cainiao_A10 小时前
【ggml系列】【第五篇】ggml_compute_forward_mul_mat 矩阵乘法算子源码与性能优化深度解析
线性代数·性能优化·矩阵
ai产品老杨11 小时前
边云协同视频分析性能优化指南:多站点部署下的参数配置与排查清单(边缘推理+云端管理)
性能优化·音视频
苏打水com12 小时前
《llama.cpp性能优化实战:从显存、KV Cache到Token/s》
性能优化·llama
该用户可能存在14 小时前
【Win11优化】StartAllBack实战:解决任务栏合并、右键折叠等痛点
windows·性能优化·win11·windows 11·startallback·任务栏·开始菜单
灯澜忆梦1 天前
【MySQL12】进阶篇 | SQL优化
数据库·sql·mysql·性能优化
爱喝水的鱼丶1 天前
SAP-ABAP:性能优化效果验证与回归测试:优化前后性能对比、业务逻辑兼容性校验方案
性能优化·sap·abap·回归测试·开发交流·交流学习
starzhang1 天前
06 从 Trace 看 Android 启动流程
性能优化
工业设备方案笔记1 天前
RK3588 AI设备性能优化指南:如何释放ARM边缘计算平台真正性能?
arm开发·人工智能·目标跟踪·性能优化·架构·边缘计算
数据库小学妹2 天前
空间数据库查询慢怎么排查?索引失效、表膨胀、SQL优化实战(附排查命令)
数据库·性能优化·信创·故障排查·索引调优·空间数据库