一个请求地址同时引入多个文件是怎么实现的

87次阅读

看到SF头部的JS引入和猪八戒网的CSS引入都是用这种方法引进HTML里,很好得减少了请求次数,请教下各位大大,是如何实现的?效果:

<script src="http://sfault.com/??js/feature/markitup.js,js/feature/simple_modal.js,js/feature/upload_modal.js,js/feature/textarea_resizer.js,js/feature/sfmark.js,js/feature/editable.js,js/feature/autoresize.js,js/feature/tooltip.js,js/feature/prettify.js,js/feature/clipboard.js,js/feature/tokeninput.js,js/feature/ga.js,js/feature/tag_popup.js?12.7.26.1"></script>
<link rel="stylesheet" type="text/css" href="http://t4.zbjimg.com/min/?b=v&amp;f=g.css,base.css,head.css,nav.css,ui-form.css,zbj-index.css,footer.css&amp;v=1.12">

ShingChi

我们使用了淘宝开发的nginx_concat_module,这个nginx模块可以很方便的合并静态文件请求,具体信息你可以参考

http://code.taobao.org/p/nginx_concat…

joyqi

如果只使用php的话。
我以wordpress的load-scripts.php 介绍下吧。

假设整个url是load-scripts.php?load=blah1.js,blah2.js

  • 1,遍历读取(file_get_contents)并合并blah1.js和blah2.js在一个临时变量。
  • 2,然后就是发送些header了。
header('Content-Type: application/x-javascript; charset=UTF-8');
header('Expires: ' . gmdate( "D, d M Y H:i:s", time() + $expires_offset ) . ' GMT'); //过期时间
header("Cache-Control: public, max-age=$expires_offset");
gzip 什么的这里。
  • 3, 最后当然是输出 #1 合并的变量

详细代码请看这里
https://github.com/WordPress/WordPres…

还有一个专门load css的
https://github.com/WordPress/WordPres…

kankana

正文完