现在的网站表现力越来越丰富,页面加载的js和css自然也越来越多。当网站页面上的js和css太多,浏览器打开页面的速度就会很慢,明显降低了用户的体验。使用mod_concatx, 可以合并多个文件在一个http响应报文中,可以有效提高js/css的加载速度。
示例效果如下:
mod_concatx模块是在mod_concat基础上修改的,感谢他们的工作。
原有的mod_concat模块有很大的参考价值,但实际作用不大。
该模块存在以下三个问题:
1、每次都会重新向客户端发数据,没有合理利用浏览器缓存
2、存在安全漏洞,导致服务端程序被下载,比如"/??jquery.js,common.php"
3、合并每个文件时中间没间隔,导致内容粘连在一起,可能引起错误
所以我在mod_concat基础上写了mod_concatx模块,解决了前面提到的一些问题。
下载地址:http://download.csdn.net/detail/cwqcwk1/9213863(内附源码,dll,2015-10-26 更新了gzip支持)
Git托管地址:https://github.com/chenweiqi/apmod
使用方法:
<link href="/style/??css1.css,css2.css,css3.css" type="text/css" rel="stylesheet"/> <script src="/js/??js1.js,js2.js,js3.js,js4.js" type="text/javascript"></script>
模块配置:
打开apache配置文件httpd.confLoadModule concatx_module modules/mod_concatx.dll
高级配置:(以下是默认配置,可以不配置)
<IfModule concatx_module> ConcatxDisable Off ConcatxCheckModified On ConcatxSeparator On ConcatxMaxSize 1024 ConcatxMaxCount 10 ConcatxFileType js,css </IfModule>
ConcatxDisable On/Off //是否使用mod_concatx模块 ConcatxCheckModified On/Off //检查文件是否改动,建议On ConcatxSeparator On/Off //合并文件时是否加换行分隔,建议On ConcatxMaxSize 数字 //合并文件总大小限制最大值,建议不要太大 ConcatxMaxCount 数字 //合并文件总个数限制最大值,建议不要太大 ConcatxFileType js,css //合并文件类型限制,如不限制填","
支持gzip
gzip压缩依赖其他原生apache模块mod_deflate,开启方法如下:
打开apache配置文件httpd.conf
LoadModule deflate_module modules/mod_deflate.so
常见问题:
1、如果加载模块后apahce无法启动,请安装vc10运行库。这是因为我这里提供的dll都是vc10编译的,地址如下:
32位地址,64位地址
2、linux下安装mod_concatx模块,方法猛击这里
最后语
建议自己编译这个模块,安全放心2015/10/26 增加gzip支持
2015/6/13 解决目录存在默认页加载异常
2015/6/13 解决文件后面带? 无法解析问题
参考:http://blog.csdn.net/mycwq/article/details/9361117