介绍 Cloudflare Workers Static Assets 在个人网站中的作用,以及为什么静态前端配合 Worker API 很适合轻量博客
Cloudflare Workers Static Assets:静态网站为什么可以这么轻
以前做网站时,常见方式是准备一台服务器,然后安装 Nginx,再把 HTML、CSS、JavaScript 放进去。
现在做一些个人项目,我越来越喜欢把静态资源和后端逻辑分开。
Zivi Blog 就采用了这种思路:
TEXT复制
静态页面
+
Workers API
+
KV 数据
什么是 Static Assets?
可以简单理解为:
把 HTML、CSS、JavaScript、图片这些文件直接交给 Cloudflare 分发。
这些文件不需要每次都经过复杂后端程序处理。
比如:
TEXT复制
index.html
blog.html
post.html
assets/css/blog.css
assets/js/blog.js
assets/covers/default.svg
都可以作为静态资源直接返回给访问者。
为什么静态资源快?
因为它不需要做这些事情:
TEXT复制
启动 PHP
连接数据库
执行模板
查询文章
拼接 HTML
返回页面
静态文件本身已经存在,只需要读取和传输。
所以它的结构非常简单:
TEXT复制
访客
↓
Cloudflare
↓
静态文件
那动态文章怎么办?
文章数据仍然可以通过 API 加载。
例如:
TEXT复制
blog.html
↓
/api/posts
↓
Workers
↓
KV
这样前端保持静态,数据部分保持动态。
这也是我目前比较喜欢的模式。
静态前端 + 动态数据的好处
1. 页面结构简单
HTML 和 CSS 不需要依赖数据库才能显示。
即使文章 API 出现问题,网站基础框架依然存在。
2. 更新前端很方便
改完代码以后:
BASH复制
npx wrangler deploy
即可重新部署。
3. 后端压力更小
只有真正需要读取数据的时候才执行 Worker。
不像传统 CMS,每次打开页面可能都要重新执行一整套程序。
哪些内容适合做静态?
非常适合静态化的内容包括:
- 网站导航
- 顶部导航栏
- 页脚
- CSS
- JavaScript
- 默认图片
- 图标
- 关于页面
- 文章页面框架
哪些内容适合动态?
动态数据则包括:
- 最新文章
- 文章正文
- 分类统计
- 阅读量
- 后台发布
- 搜索结果
- 用户状态
为什么我没有全部做成纯静态博客?
纯静态博客当然也很好。
但如果每发一篇文章都要:
TEXT复制
本地写 Markdown
↓
重新构建
↓
重新部署
长期使用还是不够方便。
所以我更希望后台能直接发布。
一个比较平衡的架构
现在 Zivi Blog 的思路可以概括为:
TEXT复制
前台:静态
数据:动态
后台:动态
前台负责快。
后台负责方便。
KV 负责保存文章。
缓存也更容易控制
静态资源可以长期缓存:
TEXT复制
CSS
JS
图片
SVG
而文章 API 只缓存几十秒或几分钟。
这样修改样式时通过版本号更新,发布文章时又不会等很久。
适合什么项目?
这种结构很适合:
- 个人博客
- 导航站
- 作品展示
- 文档站
- 小型工具站
- 活动页
- 轻量内容站
不适合什么项目?
如果是复杂商城、ERP、大型社区或者大量实时数据系统,就不应该为了“静态”而强行静态。
技术方案还是要跟需求走。
写在最后
Static Assets 最大的价值并不是“看起来高级”。
而是让网站最常访问的部分保持简单。
对个人博客来说,我希望:
大部分时间只是读取文件,真正需要动态能力时才调用 Worker。
这样就足够轻了。