前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >前端JS、CSS版本控制

前端JS、CSS版本控制

作者头像
青梅煮码
发布2023-01-16 15:01:11
8.1K0
发布2023-01-16 15:01:11
举报
文章被收录于专栏:青梅煮码青梅煮码

前言

最近面试,问道js,css版本控制问题,一时间忘记,没答上来,下来查阅资料,整理一下。

问题

用户 首次 通过浏览器打开网页时都会对 JS、CSS 文件 进行缓存,以便在下次打开时可以直接从缓存中取出,而不用重复地向服务器 再次请求;当用户再次通过浏览器浏览某个网页,浏览器在加载网页中包含的各个资源(JS、css、图片)时,先会判断缓存中是否已经包含了此资源(当然这与Header中定义的Cache-Control有关,静态资源很少有设置成不缓存的,我这里默认它们都是可缓存),如果包含,就不去服务器获取了。

这个问题怎么解决?

普通处理方法:

每次更新前,在html文件内,将所有引用(URL)的JS和CSS文件名后面添加后缀?verson=20170927,如:Global.css?v=yyyyMMddv,虽然定位到的资源仍然是Global.css,但如果v的值不同,浏览器会认为是不同的资源。同理,对于JS、图片来说,也是如此。 ==> 但这种手动的处理方法有缺点就是:当文件很多的时候,需要一个个添加,容易出错和耗时耗力。

Vue的处理方法:

1. 关闭版本控制方法:

找到build/webpack.prod.conf.js文件,可以看到 ==>js文件:

代码语言:javascript
复制
output: {
     path: config.build.assetsRoot,
     filename: utils.assetsPath('js/[name].[chunkhash].js'),
     chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
},

==>css文件:

代码语言:javascript
复制
new ExtractTextPlugin({
       filename: utils.assetsPath('css/[name].[contenthash].css')
}),
%title插图%num
%title插图%num
%title插图%num
%title插图%num
%title插图%num
%title插图%num

2. 关闭版本控制方法: ==>js文件:

代码语言:javascript
复制
output: {
     path: config.build.assetsRoot,
     filename: utils.assetsPath('js/[name].js'),
     chunkFilename: utils.assetsPath('js/[id].js')
},

==>css文件:

代码语言:javascript
复制
new ExtractTextPlugin({
     filename: utils.assetsPath('css/[name].css')
}),
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-08-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 问题
  • 普通处理方法:
  • Vue的处理方法:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档