全国免费咨询热线:400-611-9921
 
Web前端构建工具版本号管理方案思考

2015-06-11

865

前端构建工具满天飞的情景下,笔者也忍不住去捣鼓了一下,真正体验一下NODEJS带来的魅力,经过一段时间规划设计,终于将平台工具捣鼓出来了。在里面也体验了express,socket.io,grunt等node插件服务,使用很流畅,并...
Web前端构建工具版本号管理方案思考,互联网的一些事

  前端构建工具满天飞的情景下,笔者也忍不住去捣鼓了一下,真正体验一下NODEJS带来的魅力,经过一段时间规划设计,终于将平台工具捣鼓出来了。在里面也体验了express, socket.io, grunt等node插件服务,使用很流畅,并且很好的完了我的基本需求(JS\CSS\IMAGE的压缩和自动部署功能)。

  虽然基本功能完成,但是还有一个让人容易忽略而又重要的问题来了,就是资源文件的版本号的问题。在这里用的是SeaJS来做的模块管理,也在网上搜集了一下关于这块的资料。大致有以下两种方案:

  1、配置SeaJS的map对象。很方便,集中管理,但是也存在一些问题,比如:map对象的维护、配置文件引用页面的时间戳问题。

  2、生成文件sign,替换原有文件的名。这里不用考虑页面引用的时间戳问题,但是需要对资源及页面做一次全文查找替换,这对于分散部署的情况下将会非常复杂。

  看了上面两种方案后,感觉在我的场景下还存在一些不足之处。笔者想要的是不影响开发情况下,开发人员完全不用考虑文件被缓存问题,只需完成编码,提交到构建系统后,一键完成构建和部署。

  确定好目标后,既然不想让开发同学关心时间戳问题,那么是否可以将这个工作交给Web服务器来做呢?那么交给服务器来做之后,如何动态的更新最新的资源文件呢?

  有问题就好解决,将问题抛出来之后,方案也渐进呈现出来,不啰嗦了,直接上笔者的实现方案:

  构建工具动态生成.htaccess文件,将构建的资源文件的URL重写列表同步到.htaccess文件中以达到由服务器动态获取新的资源文件。

  (备注:笔者是在apache环境下,对IIS\NGINX\TOMCAT\RESIN\JBOSS等环境还需要再研究研究。)

  看了上面的方案是不是很简单,那具体是怎么做的呢?笔者也在这里列一下。

  1. 构建工具在构的时候生成一个与filename.ext对应的filename.ext.sha1的文件,这个.sha1的文件存放filename.ext文件的sha1值。

  2. 在构建完成后,构建工具读取.htaccess的模板,并且遍历得到所有资源文件的列表,生成一个对filename.ext对应的filename.ext.sign的文件。

  3. 按规则生成RewriteCond和RewriteRule。并将规则数据写到.htaccess文件中并部署到资源文件站点的根据目录。

Web前端构建工具版本号管理方案思考,互联网的一些事

  图一:构建工具基本结构图

Web前端构建工具版本号管理方案思考,互联网的一些事

  图二:构建后的文件列表

Web前端构建工具版本号管理方案思考,互联网的一些事

  图三:生成一条Rule

Web前端构建工具版本号管理方案思考,互联网的一些事

  图四:生成后的.htaccess文件

  OK,到这里基本告一段落了,资源版本号解决了。但是对于性能影响这块还需要观察,待有时间再研究。


关注我们:在查找公众号中搜索:zomsky1688,或者扫描下方二维码快速关注。
广州市纵天信息科技有限公司公众号
关键词:纵天科技,广州品牌网站建设公司,广州网站制作公司,广州网站建设,广州网站设计,网站建设,手机网站开发,品牌设计,用户体验
热门标签
柏洪集团网站集团网站建设新元素网站教育网站德胜教育集团德国商会网站建设德国商会品牌网站建设福美控股赛立信网站建设智能家居网站运动网站建设贸易网站建设玩具网站建设化工网站建设日化网站建设家电网站建设音响网站建设物流网站建设旅游网站建设网站建酒店网站建母婴网站建设珠宝网站建设钟表网站建设培训网站建设教育网站建设建材网站建设装饰网站建设机械网站建设美妆网站建设展览网站建设皮具网站建设五金网站建设仪器网站建设照明网站建设水电网站建设咨询网站建设法律网站建设家具网站建设家居网站建设服装网站建设服务网站建设食品网站建设金融网站建设餐饮网站建设环保网站建设政府网站建设科技网站建设地产网站建设医药网站建设数码网站建设营销型网站广州网站制作广州网站建设公司建网站广州网站设计公司建站优必思官网英文版网站定制网站广州网站建设中服装网站设计服装网站制作防火板网站大数据网站科技网站制作三盟科技物联网网站人工智能网站防火板网站制作家居网站制作枕头网站电器网站制作电器网站家具网站家居网站斯帝罗兰网站建设公司​手机网站建设响应式网站企业官方网站网站策划官网改版企业网站建设网站制作网站设计建站公司网站建设公司企业网站网站建设费用网站建设广州企业网站建设企业建站官网建设公司网站制作拉链官网广州建站广州网站建设纵天科技
立即致电纵天品牌顾问:
400-611-9921
联系我们:

地址1:广州市天河区珠江新城邦华环球广场16F

地址2:杭州市滨江区滨安路1190号智汇中心B308

业务 QQ: 3561401262

E-mail: sales@zomsky.com

电话咨询 在线咨询 QQ咨询 官方微信
官方微信
TOP

立即与纵天项目顾问通话

400-611-9921

您也可以咨询我们的在线客服或预约资深顾问

信息保护中,请放心填写
关闭