Tengine的concat模块与js、css合并

首先,先走出一个误区 ,下面是tengine-cn邮件列表里的一篇邮件原文:“看了这个例子就了解了,这个所谓的合并请求只是把所有的CSS或JAVASCRIPT请求合并,必须是同一个文件类型的.我开始想多了,之前是以为CSS和JAVASCRIPT合并在一起,可以将这两种类型的文件请求合并到一个上面去”。

我以前也误以为该模块可以将css和js文件不分类型的合并,但细一想,确实这样的合并,意义并不大。不过从官方的参数上看,也提供了CSS与JS请求合并的功能。具体可以看concat_unique参数的用法,但不建议这样做,还是建议合并同类型的文件。

其次,第二个误区,该模块并不会对合并后的内容做压缩处理,其所做的只不过是将多个CSS请求(或JS请求)合并到一个请求里去。对请求的内容并不会做任何更改。

接下来,看下其使用示例。其官方也提供了相应的帮助文档。上面的说明也比较清楚了———— 该模块类似于apache中的mod_concat模块,用于合并多个文件在一个响应报文中。请求参数需要用两个问号('??'),参数中某位置只包含一个‘?’,则'?'后表示文件的版本。

该模块默认是关闭的,不过可以在http, server, location三个位置通过设置concat on启用该模块功能。下面以一个js文件的合并为例:

location ~ /js/ {
    concat on; #启用合并
    concat_max_files 20; #最多合并的文件数
}

 配置完成后,重载nginx.conf配置 ,我们就可以写成下面的样式:

<script src="http://etosun.com/static/js/??jquery.js,jquery.cookie.js,head.js,home.js"></script>
posted @ 2014-10-17 15:33  jamesbd  阅读(950)  评论(0编辑  收藏  举报