全部笔记

Astro + Workers:一个内容网站的部署路径

从 Markdown 到静态页面,再到边缘网络。把内容、构建与部署的边界说明白。

一个以文章为主的网站,并不一定需要常驻的应用服务器。Astro 可以先把内容生成 HTML,再由 Cloudflare Workers 的静态资源能力交付给浏览器。

先决定哪些内容需要动态运行

文章、个人介绍和项目记录,在发布时确定内容即可。将它们静态构建,减少运行时依赖,也更容易检查最终产物。

表单提交、身份验证或数据库操作则不同。它们需要独立的接口和明确的权限边界。静态页面与动态接口可以共存,但没有必要让每篇文章都经过服务器渲染。

内容、构建与交付

基本流程是:Markdown 内容进入 Astro,构建生成 dist/,Wrangler 将产物上传到 Workers Static Assets。

{
  "name": "taotao-dev",
  "compatibility_date": "2026-10-11",
  "assets": {
    "directory": "./dist",
    "not_found_handling": "404-page"
  }
}

只有静态资源时,不需要额外编写一个把请求转交给资源绑定的 Worker 脚本。之后需要 API,再增加入口与路由配置。

域名与规范地址

Astro 的 site 应设置为正式域名,例如 https://taotao.dev。这样 canonical、RSS 和站点地图会指向同一个地址。

Workers 的自定义域名还需要对应域名处于可配置的 Cloudflare 账户中。写入配置文件并不等于域名已经生效,部署之后仍需验证 DNS、证书和页面响应。

验证发布结果

npm run check
npm run build
npx wrangler deploy

发布后检查首页、文章、RSS 和不存在的路径。确认不存在的路径返回 404,而不是悄悄回到首页。

相关资料:Astro 文档、Workers 静态资源。