OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  static-app: 将静态网站部署至 static.app 托管平台

static-app: 将静态网站部署至 static.app 托管平台

 
  omni ·  2026-02-01 23:39:57 · 3 次点击  · 0 条评论  

name: 静态网站托管 - Static.app
description: 将静态网站部署到 Static.app 托管平台。当用户想要在 Static.app 上部署、上传或托管静态站点时使用。触发短语包括“deploy to static.app”、“upload to static”、“host on static.app”、“static.app deploy”或当用户使用 Static.app 托管服务时。


Static.app 部署技能

直接从 OpenClaw 将静态网站和应用程序部署到 Static.app 托管平台。

工作区结构

工作区中所有 Static.app 操作都使用专用的文件夹结构:

workspace/
└── staticapp/              # 所有 Static.app 操作的主文件夹
    ├── new-site/           # 本地创建的新站点
    └── {pid}/              # 下载的现有站点(按 PID)
  • 新站点:在部署前创建于 staticapp/ 子文件夹中
  • 下载的站点:解压到 staticapp/{pid}/ 以供编辑

Static.app 如何处理文件

Static.app 会自动根据您的文件名生成简洁的 URL:

文件 URL
index.html / (首页)
about.html /about
portfolio.html /portfolio
contact.html /contact

无需子目录! 只需在根文件夹中创建 .html 文件。

项目结构

简单的多页面网站

my-site/
├── index.html          # 首页 → /
├── about.html          # 关于页面 → /about
├── portfolio.html      # 作品集 → /portfolio
├── contact.html        # 联系 → /contact
├── style.css           # 样式表
├── js/                 # JavaScript 文件
│   ├── main.js
│   └── utils.js
└── images/             # 图片文件夹
    ├── logo.png
    └── photo.jpg

JavaScript 应用 (React, Vue 等)

对于 JS 应用,先构建,然后部署 dist(或 build)文件夹:

# 构建您的应用
npm run build

# 部署 dist 文件夹
node scripts/deploy.js ./dist

前提条件

  1. 获取 API 密钥:访问 https://static.app/account/api 并创建 API 密钥(以 sk_ 开头)
  2. 设置环境变量:将 API 密钥存储在 STATIC_APP_API_KEY 环境变量中

使用方法

部署多页面网站

# 创建页面
echo '<h1>首页</h1>' > index.html
echo '<h1>关于</h1>' > about.html
echo '<h1>作品集</h1>' > portfolio.html

# 部署
node scripts/deploy.js

部署特定目录

node scripts/deploy.js ./my-site

更新现有站点

node scripts/deploy.js . --pid olhdscieyr

列出所有站点

node scripts/list.js

列出站点文件

node scripts/files.js YOUR_PID

选项:
- --raw — 输出原始 JSON
- -k <key> — 指定 API 密钥

删除站点

node scripts/delete.js YOUR_PID

选项:
- -f, --force — 跳过确认提示
- -k <key> — 指定 API 密钥

下载站点

将现有站点下载到您的工作区进行编辑:

node scripts/download.js YOUR_PID

这将:
1. 从 Static.app API 获取下载 URL
2. 下载站点归档文件
3. 将其解压到 staticapp/{pid}/

选项:
- -p, --pid — 要下载的站点 PID
- -o, --output — 自定义输出目录(默认:./staticapp/{pid}
- -k <key> — 指定 API 密钥
- --raw — 输出原始 JSON 响应

示例:

# 下载站点到默认位置
node scripts/download.js abc123

# 下载到自定义文件夹
node scripts/download.js abc123 -o ./my-site

脚本选项

node scripts/deploy.js [SOURCE_DIR] [OPTIONS]

参数:
  SOURCE_DIR          要部署的目录(默认:当前目录)

选项:
  -k, --api-key       API 密钥(或设置 STATIC_APP_API_KEY 环境变量)
  -p, --pid           项目 PID,用于更新现有站点
  -e, --exclude       逗号分隔的排除模式
  --keep-zip          部署后保留 zip 归档文件

默认排除项

以下内容会自动从部署中排除:
- node_modules
- .git, .github
- *.md
- package*.json
- .env
- .openclaw

重要说明

✅ 支持的功能

  • 静态 HTML 站点 — 任意数量的 .html 页面
  • CSS 和 JavaScript — 前端框架、原生 JS
  • 图片和资源 — 放在 images/ 文件夹或根目录
  • JavaScript 文件 — 放在 js/ 文件夹或根目录
  • 已构建的 JS 应用 — 在 npm run build 后部署 dist/build/ 文件夹

❌ 不支持的功能

  • Node.js 服务器应用 — 无服务器端渲染,不支持 Express.js 或 API 路由
  • PHP, Python, Ruby — Static.app 仅提供静态文件服务
  • 数据库 — 使用客户端存储或外部 API

JavaScript 应用工作流程

# 1. 构建您的 React/Vue/Angular 应用
npm run build

# 2. 部署构建输出
node scripts/deploy.js ./dist --pid YOUR_PID

API 参考

部署站点

  • 端点POST https://api.static.app/v1/sites/zip
  • 认证:Bearer 令牌(API 密钥)
  • 请求体:包含 archive(zip 文件)和可选 pid 的多部分表单数据

列出站点

  • 端点GET https://api.static.app/v1/sites
  • 认证:Bearer 令牌(API 密钥)
  • 请求头Accept: application/json

列出站点文件

  • 端点GET https://api.static.app/v1/sites/files/{pid}
  • 认证:Bearer 令牌(API 密钥)
  • 请求头Accept: application/json

删除站点

  • 端点DELETE https://api.static.app/v1/sites/{pid}
  • 认证:Bearer 令牌(API 密钥)
  • 请求头Accept: application/json

下载站点

  • 端点GET https://api.static.app/v1/sites/download/{pid}
  • 认证:Bearer 令牌(API 密钥)
  • 请求头Accept: application/json
  • 响应:返回站点归档文件的下载 URL

依赖项

  • archiver — 创建 zip 归档文件
  • form-data — 多部分表单编码
  • node-fetch — HTTP 请求
  • adm-zip — 解压 zip 文件

安装:cd scripts && npm install

响应

成功时,脚本输出:

✅ 部署成功!
🌐 站点 URL:https://xyz.static.app
📋 PID:abc123

STATIC_APP_URL=https://xyz.static.app
STATIC_APP_PID=abc123

工作流程

  1. 检查 STATIC_APP_API_KEY 环境变量或 --api-key
  2. 从源目录创建 zip 归档文件(排除指定内容)
  3. 上传到 Static.app API
  4. 解析响应并输出 URL
  5. 清理临时 zip 文件

错误处理

  • 缺少 API 密钥 → 显示清晰的错误信息和操作说明
  • 网络问题 → 显示 HTTP 错误详情
  • 无效 PID → 显示 API 错误信息
3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor