SlideShare a Scribd company logo
1 of 13
构建可扩展的静态资源管理系统 许阳寅@淘宝
关于我 许阳寅(文河@淘宝) f2e.us yyfrankyy@gmail.com
静态资源管理 常见功能 预编译其他资源(LESS/Sass,CoffeeScript) 规范检查,语法检查,安全检查 Sprite 合并,压缩 各自实现 VS 系统化处理
现有系统 facebook的静态资源管理系统 跟php深度集成,组件跟JS/CSS/Image绑定 依赖分析,本地化,合并,sprite,压缩 伸缩性,自我学习 百度的前端编译平台 统一化执行脚本 规范检查,安全检查 CSS3 模板检查,HTML压缩 自动时间戳
淘宝现有的RMS系统 编译TMS模板 语法检查(js) 安全检查(php/image) 编码转换 压缩
为何需要更进一步 需求 产品线众多,构建规则不同 每周发布量大 处理文件的方式大不一样 目标 快速稳定 可扩展 可配置
快速稳定 实现调度中心,集中控制容错,反馈日志 异步工作流(NodeJS)
可扩展 各种语言实现的预处理工具 YC/GC: Java CSSGaga: .NET LESS/CoffeeScript: NodeJS 使用NodeJS和其他平台进行异步通信 NodeJS社区丰富的模块资源
可配置 {“type”: “JavaScript” ,“steps”: [    [“coffeescript”, {}]  ,[“nativeascii”, {}]  ,[“compressor”, {“type”: “UglifyJS”}]]} {“type”: “CSS” ,“steps”: [    [“less”, {}]   ,[“compressor”, {“type”: “YC”}]]}
和应用集成(自动时间戳) 后端:发布时同步生成时间戳文件 前端:importAssets(“apps/tms/js/spm.js”) ,[object Object]
<script src=“http://a.tbcdn.cn/apps/tms/js/spm.js?t=1”></script>
<script src=“http://assets.daily.taobao.net/apps/tms/js/spm.js?t=$random”></script>,[object Object]
几点特性 拦截应用Assets入口 配置预处理过程 利用NodeJS的模块资源和异步特性进行流水线组装

More Related Content

Similar to 构建可扩展的静态资源管理系统

Sphinx 全文检索实践指南
Sphinx 全文检索实践指南Sphinx 全文检索实践指南
Sphinx 全文检索实践指南Shaoning Pan
 
Pegasus KV Storage, Let the Users focus on their work (2018/07)
Pegasus KV Storage, Let the Users focus on their work (2018/07)Pegasus KV Storage, Let the Users focus on their work (2018/07)
Pegasus KV Storage, Let the Users focus on their work (2018/07)涛 吴
 
SITCON 2016 ─ Modern Front-End Workflow with Webpack
SITCON 2016 ─ Modern Front-End Workflow with WebpackSITCON 2016 ─ Modern Front-End Workflow with Webpack
SITCON 2016 ─ Modern Front-End Workflow with Webpack昱安 周
 
前端杂谈
前端杂谈前端杂谈
前端杂谈salinet
 
Css schema by_sofish
Css schema by_sofishCss schema by_sofish
Css schema by_sofishWebrebuild
 
支付宝CSS构架
支付宝CSS构架支付宝CSS构架
支付宝CSS构架Sofish Lin
 
华为软件定义存储架构分析
华为软件定义存储架构分析华为软件定义存储架构分析
华为软件定义存储架构分析Liang Ming
 
Open stack swift
Open stack swiftOpen stack swift
Open stack swiftYong Luo
 
Dreaming Infrastructure
Dreaming InfrastructureDreaming Infrastructure
Dreaming Infrastructurekyhpudding
 
Pegasus In Depth (2018/10)
Pegasus In Depth (2018/10)Pegasus In Depth (2018/10)
Pegasus In Depth (2018/10)涛 吴
 
Behind Pegasus, What matters in a Distributed System (Arch summit shenzhen_2017)
Behind Pegasus, What matters in a Distributed System (Arch summit shenzhen_2017)Behind Pegasus, What matters in a Distributed System (Arch summit shenzhen_2017)
Behind Pegasus, What matters in a Distributed System (Arch summit shenzhen_2017)涛 吴
 
信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressAppzhoujg
 
腾讯大讲堂18 让我们戴上有色眼镜--qzone前台架构的优化分享
腾讯大讲堂18 让我们戴上有色眼镜--qzone前台架构的优化分享腾讯大讲堂18 让我们戴上有色眼镜--qzone前台架构的优化分享
腾讯大讲堂18 让我们戴上有色眼镜--qzone前台架构的优化分享areyouok
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型Jackson Tian
 
建立前端开发团队 (Front-end Development Environment)
建立前端开发团队 (Front-end Development Environment)建立前端开发团队 (Front-end Development Environment)
建立前端开发团队 (Front-end Development Environment)Joseph Chiang
 
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华zhuozhe
 
Web开发与运维安全浅见
Web开发与运维安全浅见Web开发与运维安全浅见
Web开发与运维安全浅见mysqlops
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介pan weizeng
 

Similar to 构建可扩展的静态资源管理系统 (20)

Sphinx 全文检索实践指南
Sphinx 全文检索实践指南Sphinx 全文检索实践指南
Sphinx 全文检索实践指南
 
Pegasus KV Storage, Let the Users focus on their work (2018/07)
Pegasus KV Storage, Let the Users focus on their work (2018/07)Pegasus KV Storage, Let the Users focus on their work (2018/07)
Pegasus KV Storage, Let the Users focus on their work (2018/07)
 
SITCON 2016 ─ Modern Front-End Workflow with Webpack
SITCON 2016 ─ Modern Front-End Workflow with WebpackSITCON 2016 ─ Modern Front-End Workflow with Webpack
SITCON 2016 ─ Modern Front-End Workflow with Webpack
 
前端杂谈
前端杂谈前端杂谈
前端杂谈
 
Css schema by_sofish
Css schema by_sofishCss schema by_sofish
Css schema by_sofish
 
支付宝CSS构架
支付宝CSS构架支付宝CSS构架
支付宝CSS构架
 
华为软件定义存储架构分析
华为软件定义存储架构分析华为软件定义存储架构分析
华为软件定义存储架构分析
 
Open stack swift
Open stack swiftOpen stack swift
Open stack swift
 
Dreaming Infrastructure
Dreaming InfrastructureDreaming Infrastructure
Dreaming Infrastructure
 
Pegasus In Depth (2018/10)
Pegasus In Depth (2018/10)Pegasus In Depth (2018/10)
Pegasus In Depth (2018/10)
 
Dfs ning
Dfs ningDfs ning
Dfs ning
 
Behind Pegasus, What matters in a Distributed System (Arch summit shenzhen_2017)
Behind Pegasus, What matters in a Distributed System (Arch summit shenzhen_2017)Behind Pegasus, What matters in a Distributed System (Arch summit shenzhen_2017)
Behind Pegasus, What matters in a Distributed System (Arch summit shenzhen_2017)
 
信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp信息系统开发平台OpenExpressApp
信息系统开发平台OpenExpressApp
 
腾讯大讲堂18 让我们戴上有色眼镜--qzone前台架构的优化分享
腾讯大讲堂18 让我们戴上有色眼镜--qzone前台架构的优化分享腾讯大讲堂18 让我们戴上有色眼镜--qzone前台架构的优化分享
腾讯大讲堂18 让我们戴上有色眼镜--qzone前台架构的优化分享
 
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
从无阻塞并行脚本加载(Lab.js)到浏览器消息模型
 
建立前端开发团队 (Front-end Development Environment)
建立前端开发团队 (Front-end Development Environment)建立前端开发团队 (Front-end Development Environment)
建立前端开发团队 (Front-end Development Environment)
 
敦群學院-SharePoint精英計畫-系統管理-Day 1
敦群學院-SharePoint精英計畫-系統管理-Day 1敦群學院-SharePoint精英計畫-系統管理-Day 1
敦群學院-SharePoint精英計畫-系統管理-Day 1
 
浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华浅析分布式存储架构—设计自己的存储- 58同城徐振华
浅析分布式存储架构—设计自己的存储- 58同城徐振华
 
Web开发与运维安全浅见
Web开发与运维安全浅见Web开发与运维安全浅见
Web开发与运维安全浅见
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介
 

More from Webrebuild

重构 这一路走来
重构 这一路走来重构 这一路走来
重构 这一路走来Webrebuild
 
Script with engine
Script with engineScript with engine
Script with engineWebrebuild
 
Css3之颜色与半透明
Css3之颜色与半透明Css3之颜色与半透明
Css3之颜色与半透明Webrebuild
 
移动网站的兼容性探索
移动网站的兼容性探索移动网站的兼容性探索
移动网站的兼容性探索Webrebuild
 
孙极-Hello, JSS! - 一种新样式语言的诞生
孙极-Hello, JSS! - 一种新样式语言的诞生孙极-Hello, JSS! - 一种新样式语言的诞生
孙极-Hello, JSS! - 一种新样式语言的诞生Webrebuild
 
陈子舜-Html5 based web app
陈子舜-Html5 based web app陈子舜-Html5 based web app
陈子舜-Html5 based web appWebrebuild
 
谭正谊-QQ邮箱HTML5移动应用
谭正谊-QQ邮箱HTML5移动应用谭正谊-QQ邮箱HTML5移动应用
谭正谊-QQ邮箱HTML5移动应用Webrebuild
 
唐俊开-Html5 mobile web app浅谈
唐俊开-Html5 mobile web app浅谈唐俊开-Html5 mobile web app浅谈
唐俊开-Html5 mobile web app浅谈Webrebuild
 
微观重构 黄婉芳
微观重构 黄婉芳微观重构 黄婉芳
微观重构 黄婉芳Webrebuild
 
年会主持 By pufen
年会主持 By pufen年会主持 By pufen
年会主持 By pufenWebrebuild
 
年会主持 By pufen
年会主持 By pufen年会主持 By pufen
年会主持 By pufenWebrebuild
 
重构的价值转化 By impact
重构的价值转化 By impact重构的价值转化 By impact
重构的价值转化 By impactWebrebuild
 
七年之痒Webrebuild by emu
七年之痒Webrebuild by emu七年之痒Webrebuild by emu
七年之痒Webrebuild by emuWebrebuild
 
Qmail rebuild_by_nico
Qmail rebuild_by_nicoQmail rebuild_by_nico
Qmail rebuild_by_nicoWebrebuild
 
潘杰茂_网络图像优化
潘杰茂_网络图像优化潘杰茂_网络图像优化
潘杰茂_网络图像优化Webrebuild
 
张思坚 浏览器兼容性
张思坚 浏览器兼容性张思坚 浏览器兼容性
张思坚 浏览器兼容性Webrebuild
 
飘飘 年会主持
飘飘 年会主持飘飘 年会主持
飘飘 年会主持Webrebuild
 
石玉磊 Web rebuild
石玉磊 Web rebuild石玉磊 Web rebuild
石玉磊 Web rebuildWebrebuild
 
彪叔 [2010]webrebuild
彪叔 [2010]webrebuild彪叔 [2010]webrebuild
彪叔 [2010]webrebuildWebrebuild
 
陈军 Scrum敏捷项目管理-重构年会
陈军 Scrum敏捷项目管理-重构年会陈军 Scrum敏捷项目管理-重构年会
陈军 Scrum敏捷项目管理-重构年会Webrebuild
 

More from Webrebuild (20)

重构 这一路走来
重构 这一路走来重构 这一路走来
重构 这一路走来
 
Script with engine
Script with engineScript with engine
Script with engine
 
Css3之颜色与半透明
Css3之颜色与半透明Css3之颜色与半透明
Css3之颜色与半透明
 
移动网站的兼容性探索
移动网站的兼容性探索移动网站的兼容性探索
移动网站的兼容性探索
 
孙极-Hello, JSS! - 一种新样式语言的诞生
孙极-Hello, JSS! - 一种新样式语言的诞生孙极-Hello, JSS! - 一种新样式语言的诞生
孙极-Hello, JSS! - 一种新样式语言的诞生
 
陈子舜-Html5 based web app
陈子舜-Html5 based web app陈子舜-Html5 based web app
陈子舜-Html5 based web app
 
谭正谊-QQ邮箱HTML5移动应用
谭正谊-QQ邮箱HTML5移动应用谭正谊-QQ邮箱HTML5移动应用
谭正谊-QQ邮箱HTML5移动应用
 
唐俊开-Html5 mobile web app浅谈
唐俊开-Html5 mobile web app浅谈唐俊开-Html5 mobile web app浅谈
唐俊开-Html5 mobile web app浅谈
 
微观重构 黄婉芳
微观重构 黄婉芳微观重构 黄婉芳
微观重构 黄婉芳
 
年会主持 By pufen
年会主持 By pufen年会主持 By pufen
年会主持 By pufen
 
年会主持 By pufen
年会主持 By pufen年会主持 By pufen
年会主持 By pufen
 
重构的价值转化 By impact
重构的价值转化 By impact重构的价值转化 By impact
重构的价值转化 By impact
 
七年之痒Webrebuild by emu
七年之痒Webrebuild by emu七年之痒Webrebuild by emu
七年之痒Webrebuild by emu
 
Qmail rebuild_by_nico
Qmail rebuild_by_nicoQmail rebuild_by_nico
Qmail rebuild_by_nico
 
潘杰茂_网络图像优化
潘杰茂_网络图像优化潘杰茂_网络图像优化
潘杰茂_网络图像优化
 
张思坚 浏览器兼容性
张思坚 浏览器兼容性张思坚 浏览器兼容性
张思坚 浏览器兼容性
 
飘飘 年会主持
飘飘 年会主持飘飘 年会主持
飘飘 年会主持
 
石玉磊 Web rebuild
石玉磊 Web rebuild石玉磊 Web rebuild
石玉磊 Web rebuild
 
彪叔 [2010]webrebuild
彪叔 [2010]webrebuild彪叔 [2010]webrebuild
彪叔 [2010]webrebuild
 
陈军 Scrum敏捷项目管理-重构年会
陈军 Scrum敏捷项目管理-重构年会陈军 Scrum敏捷项目管理-重构年会
陈军 Scrum敏捷项目管理-重构年会
 

Recently uploaded

10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习PUAXINYEEMoe
 
Math Chapter3-教學PPT第03單元形體關係、體積與表面積Grade Six
Math Chapter3-教學PPT第03單元形體關係、體積與表面積Grade SixMath Chapter3-教學PPT第03單元形體關係、體積與表面積Grade Six
Math Chapter3-教學PPT第03單元形體關係、體積與表面積Grade Six611002610
 
啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx
啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx
啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptxbusinesshealthwise
 
1.🎉成绩单,你的成绩! 💡🔥每个人都有自己的成绩单,它记录着我们努力的成果。但有时候,看着这些数字,却发现它们好像在嘲笑我?别担心,让我来告诉你们怎么改...
1.🎉成绩单,你的成绩! 💡🔥每个人都有自己的成绩单,它记录着我们努力的成果。但有时候,看着这些数字,却发现它们好像在嘲笑我?别担心,让我来告诉你们怎么改...1.🎉成绩单,你的成绩! 💡🔥每个人都有自己的成绩单,它记录着我们努力的成果。但有时候,看着这些数字,却发现它们好像在嘲笑我?别担心,让我来告诉你们怎么改...
1.🎉成绩单,你的成绩! 💡🔥每个人都有自己的成绩单,它记录着我们努力的成果。但有时候,看着这些数字,却发现它们好像在嘲笑我?别担心,让我来告诉你们怎么改...微信 tytyqqww业务接单
 
1.1.3急救你必须懂四年级设计与工艺练习活页练习单元一四年级设计与工艺急救你必须懂
1.1.3急救你必须懂四年级设计与工艺练习活页练习单元一四年级设计与工艺急救你必须懂1.1.3急救你必须懂四年级设计与工艺练习活页练习单元一四年级设计与工艺急救你必须懂
1.1.3急救你必须懂四年级设计与工艺练习活页练习单元一四年级设计与工艺急救你必须懂PUAXINYEEMoe
 
taibif_資料標準概念介紹_20240509_20240509_20340509.pdf
taibif_資料標準概念介紹_20240509_20240509_20340509.pdftaibif_資料標準概念介紹_20240509_20240509_20340509.pdf
taibif_資料標準概念介紹_20240509_20240509_20340509.pdfjhujyunjhang
 
1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...
1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...
1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...微信 tytyqqww业务接单
 
taibif_開放資料流程-清理資料01-通則_20240509_20240509.pdf
taibif_開放資料流程-清理資料01-通則_20240509_20240509.pdftaibif_開放資料流程-清理資料01-通則_20240509_20240509.pdf
taibif_開放資料流程-清理資料01-通則_20240509_20240509.pdfjhujyunjhang
 
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个michaelell902
 

Recently uploaded (9)

10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
10.2.1 马来西亚各州名称的由来六年级历史单元练习马来西亚各州名称的由来练习
 
Math Chapter3-教學PPT第03單元形體關係、體積與表面積Grade Six
Math Chapter3-教學PPT第03單元形體關係、體積與表面積Grade SixMath Chapter3-教學PPT第03單元形體關係、體積與表面積Grade Six
Math Chapter3-教學PPT第03單元形體關係、體積與表面積Grade Six
 
啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx
啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx
啟思中國語文 - 中二 單元一 - 孟嘗君列傳 - 記敍的方法和人稱1.pptx
 
1.🎉成绩单,你的成绩! 💡🔥每个人都有自己的成绩单,它记录着我们努力的成果。但有时候,看着这些数字,却发现它们好像在嘲笑我?别担心,让我来告诉你们怎么改...
1.🎉成绩单,你的成绩! 💡🔥每个人都有自己的成绩单,它记录着我们努力的成果。但有时候,看着这些数字,却发现它们好像在嘲笑我?别担心,让我来告诉你们怎么改...1.🎉成绩单,你的成绩! 💡🔥每个人都有自己的成绩单,它记录着我们努力的成果。但有时候,看着这些数字,却发现它们好像在嘲笑我?别担心,让我来告诉你们怎么改...
1.🎉成绩单,你的成绩! 💡🔥每个人都有自己的成绩单,它记录着我们努力的成果。但有时候,看着这些数字,却发现它们好像在嘲笑我?别担心,让我来告诉你们怎么改...
 
1.1.3急救你必须懂四年级设计与工艺练习活页练习单元一四年级设计与工艺急救你必须懂
1.1.3急救你必须懂四年级设计与工艺练习活页练习单元一四年级设计与工艺急救你必须懂1.1.3急救你必须懂四年级设计与工艺练习活页练习单元一四年级设计与工艺急救你必须懂
1.1.3急救你必须懂四年级设计与工艺练习活页练习单元一四年级设计与工艺急救你必须懂
 
taibif_資料標準概念介紹_20240509_20240509_20340509.pdf
taibif_資料標準概念介紹_20240509_20240509_20340509.pdftaibif_資料標準概念介紹_20240509_20240509_20340509.pdf
taibif_資料標準概念介紹_20240509_20240509_20340509.pdf
 
1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...
1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...
1.🎉“黑客”如何修改成绩?🤔🎉 在这个信息爆炸的时代,我们经常会看到各种作弊手段。但是你知道吗?有一种作弊方式可能比你想象中更巧妙:它就是——黑客![单...
 
taibif_開放資料流程-清理資料01-通則_20240509_20240509.pdf
taibif_開放資料流程-清理資料01-通則_20240509_20240509.pdftaibif_開放資料流程-清理資料01-通則_20240509_20240509.pdf
taibif_開放資料流程-清理資料01-通則_20240509_20240509.pdf
 
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
法国蒙彼利埃国家高等建筑学院毕业证制作/德语歌德B1证书/加拿大新斯科舍省农业学院文凭加急制作一个
 

构建可扩展的静态资源管理系统