吐槽一下百度贴吧的链接

2018-05-27 23:04:25 +08:00
 mikac

看了下 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
2352 次点击
所在节点    程序员
11 条回复
qiayue
2018-05-27 23:06:37 +08:00
多个 CSS 文件合并成一个请求,淘宝也大量使用这种形式,不过 URL 不一样
mikac
2018-05-27 23:16:22 +08:00
@qiayue 这个链接每个 CSS 文件名字看起来都是动态的,难道他们后台是实时拼接这样一个 css?
shoaly
2018-05-27 23:52:21 +08:00
后台肯定是多个 @import, 然后自动拼接的.... 这样的好处是 cdn 那边就简单了.....
nine99
2018-05-28 10:15:36 +08:00
并不是每次都拼的,有 cache 的
Kokororin
2018-05-28 10:23:46 +08:00
Tengine concat 模块
mikac
2018-05-28 10:47:52 +08:00
@shoaly 还跟 cdn 有关,不明觉厉
mikac
2018-05-28 10:48:50 +08:00
@nine99 可能我理解错了,文件名后面可能是版本号,这样就可以 cache 了
mikac
2018-05-28 10:58:05 +08:00
@Kokororin 正解,看来是通过 Tengine concat 模块来减少 http 请求数量,从而加快页面载入速度。

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

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

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

对于遗留项目,这确实是个不错的选择。除了路径有点丑,有点长 :)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/458201

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX