静态站点
静态站点 = 纯前端产物(HTML/CSS/JS/图片)不进容器:zip 上传即发布,站点经 CDN 全球分发,
地址为 https://<站点域名>/<appid>/,站点域名默认 pages.newbeebox.com;平台提供多个站点域名时
可在创建时 --domain 选择,或随时 nae pages domain 切换。没有容器、副本、端口、环境变量这些概念,
也不占 CPU/内存配额——只有一份存储配额(默认 2GB)。
适合:官网 / 文档站 / 前端 Demo / Vite、CRA、VuePress 等构建产物。 需要后端接口或服务端渲染的应用请用普通应用。
一条龙
# 1) 建站点:只要一个 app-id
nae create --kind static --app-id mysite
# 2) 构建你的前端项目(以 Vite 为例,产物在 dist/)
npm run build
# 3) 发布:打包 dist 目录上传,处理完成即上线
nae pages deploy mysite ./dist
# → 站点地址:https://pages.newbeebox.com/mysite/
再次发布重复第 2、3 步即可,整站替换:本次包里没有的旧文件会被删除。
命令
| 命令 | 说明 |
|---|---|
nae pages deploy <appid> [path] |
发布:目录就地打 zip(或直接给 .zip 文件)上传,整站替换上线 |
nae pages domain <appid> [域名] |
不带域名:列出可选站点域名与当前地址;带域名:切换(原地址仍可访问) |
nae pages refresh <appid> |
手动刷新 CDN 缓存(60 秒冷却),改动立即全网生效 |
nae pages deploys <appid> |
最近部署记录(状态 / 文件数 / 体量) |
nae pages rollback <appid> <部署ID> |
回滚到某次成功部署(副本保留窗口内;ID 见 deploys) |
nae pages files <appid> |
站点当前文件清单(只读;发布是整站替换) |
nae pages logs <appid> [--minutes N] |
源站访问日志(CDN 回源+直连口径)+ 简单统计 |
nae pages stats <appid> |
边缘访问 7 天简报:PV / UV / 请求数 / 流量(含缓存命中口径,延迟数小时) |
nae pages access-logs <appid> [--date YYYY-MM-DD] |
边缘访问日志逐行分页(留存 7 天) |
nae pages deploy mysite ./dist # 打包 dist 目录并发布
nae pages deploy mysite site.zip # 直接上传现成 zip
nae pages deploy mysite ./dist --no-refresh # 发布但不刷缓存
要点
- 必须有
index.html首页:站点根(目录根或 zip 内唯一顶层目录)下必须存在index.html,没有则发布失败。请指到构建产物目录(如dist/),别指到项目根。 - 分层缓存:HTML 文档(含
/<appid>/首页)约 10 秒过期,静态资源(JS/CSS/图片/字体/ 音视频/wasm 及各类引擎导出格式)长期缓存(当前 7 天)。发布默认自动刷新缓存、改动立即 生效;--no-refresh跳过刷新时,首页约 10 秒后自行更新,资源则要靠文件名或版本号变化 才会更新(见下条)。也可随时nae pages refresh手动刷(60 秒冷却)。 - 资源请带版本指纹:构建工具默认输出的哈希文件名(Vite/webpack 的
app-a1b2c3.js)最稳妥 ——文件名变了就是新对象,缓存天然失效;在 HTML 里引用时加?v=<构建号>查询参数同样有效 (本站域名的查询参数参与缓存)。若资源既不换名也不带版本号,改动最长会被缓存 7 天。 另注:整站替换会删除上一版的文件,发布瞬间少数仍持有旧 HTML 的访客可能短暂拿到资源 404, 首页约 10 秒过期后自愈。 - 站点域名:所有站点域名指向同一份内容,切换域名只改对外展示地址、即时生效、无需重新发布,
原地址照常可访问。非默认域名的缓存更新可能略有延迟:首页很快更新,未带版本指纹的同名资源
可能需要更久——资源带哈希文件名或
?v=版本号即不受影响(见上条)。 - 路径即子目录:站点部署在
/<appid>/路径下。构建工具需配置相对路径或base: '/<appid>/'(Vite 的base、CRA 的homepage同理),否则资源 404。 - 目录打包自动跳过
.git/、符号链接与系统垃圾文件(.DS_Store等);给现成 zip 则原样上传。 - 预压缩资源:
.br/.gz结尾的文件按预压缩资源发布——按内层文件类型定 MIME 并带Content-Encoding,浏览器自动解压(Unity/Godot 等引擎的.wasm.br.data.gz导出直接可用)。.tar.gz视为下载包,不加解压头。 - 限额:解包后总大小 ≤ 存储配额(默认 2GB),文件数 ≤ 20000。
- 上传直传对象存储:预签名 URL 一次一密,凭据不出服务端,字节不经平台。直传失败(网络层错误)时 CLI 自动改经平台中转(
PUT /apps/:id/pages/deploys/:did/upload,请求体即 zip 字节),落点相同,单文件上限 200MB;也可加--relay直接走中转(海外 CI 跨境直传不稳时推荐)。
访问统计口径
- PV:站点首页(
/<appid>/或/<appid>/index.html)被成功打开的次数(GET 且 2xx/304)。 子目录页面、JS/CSS/图片等资源请求不计 PV,只计入「请求数」。 - UV:当天产生过 PV 的去重访客数(按客户端 IP 去重,NAT 出口会把多人算成一人)。7 天合计是各天 UV 相加。
- 请求数 / 流量:全部边缘请求(含缓存命中)与出口字节。
- 数据来自 CDN 离线日志,延迟数小时,非实时;首页缓存约 10 秒,每次访问都会到达边缘留痕。
- 逐行明细是抽样:每个日志文件每站点最多落库 2 万行(大站会截断),
access-logs的total是日聚合请求数、不是可翻到的行数;翻页看has_more/next_cursor(--page仍可用)。 - 只统计默认域名:PV/UV、请求数/流量、边缘逐行明细(
access-stats/access-logs)以及nae pages logs均以平台默认站点域名为口径;经非默认站点域名产生的访问不完全计入(可能缺失或只零星出现),数字会偏低。需要完整统计请使用默认域名。
排查
nae pages deploys mysite # 看最近部署:failed 行的 Error 即失败原因
nae events mysite # 站点事件时间线(发布成功/失败/缓存刷新)
常见失败:zip 里没有 index.html(指错目录)、解包超配额、zip 损坏。
网页端「应用详情 → 站点」Tab 同样能发布:选 zip 文件上传、勾选是否刷新缓存, 也能看部署历史、手动刷新缓存、删除站点。