合并css/js请求
在项目开发的过程中,为了追求速度,减少页面建立的 http 连接数,会对多个css/js请求进行合并
如:
<script src="http://local.com/js/a.js">
<script src="http://local.com/js/b.js">
<script src="http://local.com/js/c.js">
这样的请求可以合并为:
<script src="http://local.com/js/abc.js">
请求合并的方案有很多,主要分为四类:
- 项目发布前,由人工进行文件合并
此种方式对于传统互联网企业用的更多,因为它是可以由程序员直接控制的,虽然麻烦,但易于操作
- 在项目中引入第三方的插件,如minify等
此种方式需要在项目中引入第三方插件,对于我这样的强迫症患者,非必需勿引入。
minify除可以进行合并,还可以对文件进行压缩
- 在 nginx 服务器上解决
目前可用的nginx扩展有两个:
https://github.com/alibaba/nginx-http-concat
淘宝开源的一个nginx扩展,并在淘宝官方有使用,此扩展只支持对css/js进行合并,不支持压缩
https://github.com/grasses/nginx-lua-static-merger
这是国内的一个朋友写的nginx扩展,使用了lua脚本,同样易于使用
上述两个扩展,官方的安装指南已经很全了,这里就不再转述
- 在前端项目构建时,完成合并及压缩
前端独立成一个完整的项目,多数是使用nodejs,供助于nodejs中的项目构建工具 Grunt 即可完成合并工作