吐槽一下百度贴吧的链接 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
mikac
V2EX    程序员

吐槽一下百度贴吧的链接

  •  
  •   mikac 2018 年 5 月 27 日 3089 次点击
    这是一个创建于 2880 天前的主题,其中的信息可能已经有所发展或是发生改变。

    看了下 https://tieba.baidu.com/index.html 的源码,里面一个 css 的 href 属性值超奇怪。

    首先是两个 ??, 其次是后面这一大串逗号分割的 css 文件名。这得多复杂的场景才能构建出这样的链接……

    真心搞不懂 ):

    https://tb1.bdstatic.com/??/tb/_/card_31c1d0d.css,/tb/_/js_pager_5be1e39.css,/tb/_/login_dialog_f4ae717.css,/tb/_/user_head_35f26e0.css,/tb/_/icons_a2a62be.css,/tb/_/wallet_dialog_b166468.css,/tb/_/flash_lcs_d41d8cd.css,/tb/_/new_message_system_9425a2a.css,/tb/_/base_user_data_aee5fd4.css,/tb/_/cashier_dialog_2230300.css,/tb/_/qianbao_cashier_dialog_8999f13.css,/tb/_/base_dialog_user_bar_008369c.css,/tb/_/qianbao_purchase_member_d2a879f.css,/tb/_/pay_member_d41d8cd.css,/tb/_/http_transform_d41d8cd.css,/tb/_/userbar_f4eb8c0.css,/tb/_/poptip_f0fdc70.css,/tb/_/feed_inject_d41d8cd.css,/tb/_/new_2_index_9b0a69e.css,/tb/_/pad_overlay_ea29d54.css,/tb/_/suggestion_2ee80a5.css,/tb/_/search_bright_62ee7ff.css,/tb/_/top_banner_13dc075.css,/tb/_/couplet_78341bd.css,/tb/_/slide_show_aad29db.css,/tb/_/carousel_area_v3_614f6fa.css,/tb/_/interest_num_v2_fa3eaa9.css,/tb/_/shake_bear_f28994d.css,/tb/_/payment_dialog_title_c0597a0.css,/tb/_/qianbao_purchase_tdou_4b31f54.css 
    11 条回复    2018-05-28 13:05:34 +08:00
    qiayue
        1
    qiayue  
    PRO
       2018 年 5 月 27 日
    多个 CSS 文件合并成一个请求,淘宝也大量使用这种形式,不过 URL 不一样
    mikac
        2
    mikac  
    OP
       2018 年 5 月 27 日
    @qiayue 这个链接每个 CSS 文件名字看起来都是动态的,难道他们后台是实时拼接这样一个 css?
    shoaly
        3
    shoaly  
       2018 年 5 月 27 日
    后台肯定是多个 @import, 然后自动拼接的.... 这样的好处是 cdn 那边就简单了.....
    nine99
        4
    nine99  
       2018 年 5 月 28 日
    并不是每次都拼的,有 cache 的
    Kokororin
        5
    Kokororin  
       2018 年 5 月 28 日   1
    Tengine concat 模块
    mikac
        6
    mikac  
    OP
       2018 年 5 月 28 日
    @shoaly 还跟 cdn 有关,不明觉厉
    mikac
        7
    mikac  
    OP
       2018 年 5 月 28 日
    @nine99 可能我理解错了,文件名后面可能是版本号,这样就可以 cache 了
    mikac
        8
    mikac  
    OP
       2018 年 5 月 28 日
    @Kokororin 正解,看来是通过 Tengine concat 模块来减少 http 请求数量,从而加快页面载入速度。

    不过后台应该可以把这些文件合成一个(比如在编译时期合成),似乎也能达到相同的效果。

    不知道放在 Nginx 层会比这种直接合成有什么优势
    nine99
        9
    nine99  
       2018 年 5 月 28 日
    @mikac 应该是全自动的吧,能够把页面内的 css 自动合并,并且改 html 里面的 css 的地址。如果不是这样,那反而开发的时候很麻烦,推版本的时候,还得改 css 的地址。
    nine99
        10
    nine99  
       2018 年 5 月 28 日   1
    @nine99 再有就是这个功能下沉了,以至于开发的时候不用管这事,那些历史遗留项目也可以直接获得这个特性。
    mikac
        11
    mikac  
    OP
       2018 年 5 月 28 日
    @nine99 听你这么一分析,感觉清晰了不少。

    其实有些 web 框架也可以自动的把 html 上的引用地址 和 编译完成后的文件名对应起来的,

    对于遗留项目,这确实是个不错的选择。除了路径有点丑,有点长 :)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2536 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 46ms UTC 15:55 PVG 23:55 LAX 08:55 JFK 11:55
    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