把导出的包放上线
Guidely 导出的是一包纯静态文件:没有接口、没有数据库、不连我们的服务器。 所以它能放的地方和 HTML 一样多。下面按「我们自己在用的那条路」写, 写的是能跑的命令,不是示意图。
一 · 包里有什么
解压后是一个完整站点,所有引用都是相对路径 —— 这点很重要: 放在根域、放在子路径、甚至用 file:// 双击打开,都不会因为路径写死而白屏。
最后一个目录是四份部署说明,内容就是这一页。写进包里是为了两年后你翻出这个 zip 时,不用回来找文档站还在不在。
.json,那是给你重新导入用的源文件。两种都不含我们的运行时。二 · 部署到 Cloudflare Workers
免费额度不限请求数与带宽,自带 *.workers.dev 临时域名, 不用买域名也不用配 DNS。这是我们现在用的方式。
# 解压,然后进目录
unzip guidely-export.zip -d my-docs
cd my-docs
# 建一个只挂静态资产的配置文件
cat > wrangler.jsonc <<'EOF'
{
"name": "my-docs",
"compatibility_date": "2026-10-19",
"assets": { "directory": "./" }
}
EOF
# 部署(会开浏览器让你登录一次)
npx wrangler deploy跑完会打印一个 https://my-docs.<你的子域>.workers.dev, 这就是可用的地址。换自己的域名在 Dashboard 里 Custom domains 加一条 CNAME 即可,证书自动签。
ERR_RUNTIME_FAILURE,而错误信息藏在一堆 miniflare 堆栈里,很难看出是这个原因。 写当天减 3 天最稳。_headers 也能跑,但加一份更快。带哈希的资源可以长期缓存,HTML 不行 —— 否则你改了指南,访客还看到旧的。/assets/* Cache-Control: public, max-age=31536000, immutable /*.html Cache-Control: no-cache
三 · 三个必踩的坑
1 · 404 不是配置问题,是没有服务端路由。纯静态站没有 try_files,访问 /g/foo 时服务器只会去找同名文件。 所以导出的链接一律带 .html,别自己改成 Pretty URL。
2 · MIME 不对会让 HTML 变成下载。Nginx 少了 include mime.types、对象存储把 .html 存成application/octet-stream,浏览器就会弹下载框而不是渲染。 上传对象存储时务必指定 Content-Type: text/html; charset=utf-8。
3 · 直接双击 index.html 会白屏。浏览器的 file:// 协议会拦住一部分 fetch 与模块加载。 想本地看,跑 npx serve . 起个静态服务器,别双击。
四 · 上线后自检
替换成你的域名跑一遍,看状态码和 content-type:
for p in / /g/ /assets/ /404.html; do
printf "%-14s " "$p"
curl -s -o /dev/null -w "%{http_code} %{content_type}\n" "https://你的域名$p"
done- 四个都应该是 200(
/404.html也是 200,它是文件) - HTML 的 content-type 必须是 text/html,不是 octet-stream
- 随便点开一篇指南,截图能显示 —— 说明 assets 的相对路径没坏
- 手机打开一次,长图不横向溢出
- 断网再打开一次(用本地 serve),应该照样能看
四份文档的其余三种(GitHub Pages、对象存储、Nginx)在导出包的 DEPLOY/cloudflare-workers.md 同级目录里,需要时再翻。