资源分布
一、公共资源
公共资源需要单独存放,如:jquery的各个版本和压缩版本、ico图标等公用信息
1、 避免访问我们的网站下不同子站点需要多次下载相同静态资源的问题
2、 避开浏览器对同一个域名下链接数量的限制,一定程度上增加并行度
3、 域名common.xxx.com、子域名如:js\css\img
二、模块化资源
根据业务模块划分静态资源的存储、建立相应的静态域名
如:业务模块一下相关项目使用stat1.xxx.com、业务模块二下相关项目使用stat2.xxx.com,下设不同子目录,如:js\css\img
版本管理
一、版本号管理
1、版本号存放 Redis-->DataBase
2、版本号管理
命名格式:文件名+后缀名.扩展名?V=版本号
如baser20151204.css?V=v2015151204
后台管理:为每个业务模块下的每个子项目建立统一的后台,来管理静态资源的后缀名和版本号,不需要把后缀名版本号单独放在配置文件中。避免静态资源和应用程序的绑定关系,如果仅仅静态资源改动、避免对应用程序的重启和修改;
方便回退,如果新发布的静态资源出现问题,只需要通过后台管理把后缀名和版本号修改成上一个版本即可,发布保留多个版本的静态资源。
二、静态资源发布
建议可以由静态开发人员去做,他们把相关资源开发完成,按照上面命名规则名称之后发布到测试和生产环境(不会影响到已有项目的运行),开发人员如果需要切换样式则可以通过后静态资源台管理系统进行切花。
缓存控制
一、接入CDN
二、增加浏览器本地缓存控制策略(待定)。
体积控制
一、文件压缩
Gzip、deflate(方案待定)
二、文件合并(待定)
图片上传管理
一、功能
设立统一的上传接口、保留原图和生成的缩略图、缩略图默认应该支持基本的图片尺寸、72*72、200*200等,也要支持根据传递参数,生成相应的缩略图。
二、存放
域名:img.xxx.com、file.xxx.com
存放子目录根据业务模块进行划分、如{A}\{A.1}\a.jpg,有调用者提供相关业务部门和项目名称。
总结
简单梳理一下,未完待续.....