和大家聊一下禅游记的前端打包方式 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
supersheep
V2EX    问与答

和大家聊一下禅游记的前端打包方式

  •  
  •   supersheep 2012-09-06 09:52:32 +08:00 4683 次点击
    这是一个创建于 4873 天前的主题,其中的信息可能已经有所发展或是发生改变。
    看了禅游记的产品,觉得很不错,非常喜欢,于是就command+option+u了
    发现html输出做了压缩,全站所有页面都只有一个css和一个js,地址形式是这样的
    http://cdn.chanyouji.cn/assets/application-7a0d3f87baed3aee8e3aa40223832d43.css
    http://cdn.chanyouji.cn/assets/application-0727db038bbfe17bc783885679fd5279.js
    图片后面会加hash,但没有合并(当然的)

    看起来很不错,于是推测做法。看起来就是每次上线就把所有的css中的图片路径先统统改成绝对路径,然后一股脑combo成一个文件,同时以某种算法(比如文件名拼接+时间戳md5什么的)加上hash,在自己的服务器上以此文件名存一份(防止cdn在错误的时候回原,虽然一般不会)

    js类似,combo,然后用closure压缩,加上hash,存起来。

    html就是简单的去除了多余的空格吧我想。

    这样做的好处当然是请求少,可以有效利用用户浏览器的缓存,缺点嘛就是不相关的文件也会被打到一起,网站慢慢复杂,冗余也会越来越多,开始的时候倒也无伤大雅。

    作为一个平时只做开发,虽然也有在做打包工具,但还在笨拙的开发中的生手,不知道理解有没有偏差。抛砖引玉啦。
    7 条回复    2014-09-19 22:10:45 +08:00
    cdredfox
        1
    cdredfox  
       2012-09-06 09:54:03 +08:00
    这个因该没有这么复杂,看起来是用rails开发的,是由rails提供的assert机制,可以参考rails的assert说明。
    hanbaoo
        2
    hanbaoo  
       2012-09-06 11:09:25 +08:00
    出于对产品以及萌叔的尊重,你至少把名字写对嘛,蝉
    avatasia
        3
    avatasia  
       2012-09-06 11:56:11 +08:00
    产品不错
    baixiaonuo
        4
    baixiaonuo  
       2012-09-06 16:00:08 +08:00
    是蝉游记!!!!!!!!!!!!!
    ywencn
        5
    ywencn  
       2012-09-06 16:18:14 +08:00
    supersheep
        6
    supersheep  
    OP
       2012-09-08 23:26:26 +08:00
    @hanbaoo
    @baixiaonuo
    被自己洗脑了,第一眼看到,就一直以为是“禅”,罪过,“蝉”倒是有另一种好味。

    @cdredfox
    @ywencn
    多谢,思路很值得借鉴啊=v=
    TerranC
        7
    TerranC  
       2014-09-19 22:10:45 +08:00
    这个有没有基于php的方案?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5339 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 03:36 PVG 11:36 LAX 19:36 JFK 22:36
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86