简介及架构
基于 tvt.js 生态的静态资源配置、预览与发布服务 Static Asset Service for tvt.js
👇🏻 在线预览地址:asset-manager.icegl.cn
📦 项目开源地址: 👉 https://gitee.com/ice-gl/tvt-asset-manager-serve
✨ 项目简介
tvt-asset-manager-serve 是 tvt.js 编辑器生态下的本地素材管理与静态资源发布工具。
它会扫描约定的素材目录,生成统一的资源 config,并通过 HTTP 发布图片、贴图、视频、环境资源、JSON 等文件。编辑器只需加载一份资源清单,就能获得资源地址、预览地址、类型、大小、更新时间与文件哈希等信息。
服务同时提供两种运行模式:
| 模式 | 用途 | 上传能力 | 资源清单 |
|---|---|---|---|
| 本地调试 | 管理、上传和预览本地素材 | 支持 | http://localhost:4100/config |
| 编译发布 | 部署为纯静态资源站点 | 不支持 | https://asset-manager.icegl.cn/config.json |
🎯 设计目的
1️⃣ 统一管理编辑器素材
素材按固定目录分类维护,服务会自动扫描并输出统一结构:
textures:材质贴图images:普通图片videos:视频资源env:HDR、EXR、天空图等环境资源json:材质预设、LUT 或其他配置other:其他文件
编辑器不需要关心本地文件系统,只需读取 config 中的资源 URL。
2️⃣ 本地管理,静态发布
在本地调试模式中,可以:
- 按类型筛选或搜索素材
- 直接预览图片、贴图和视频
- 复制资源 ID 与 URL
- 选择分类后批量上传或拖拽上传
- 文件变化后实时获取最新资源清单
完成素材整理后执行构建,即可将预览页、资源清单和现有素材打包为纯静态站点,部署到任意静态 Web 服务。
3️⃣ 持续打通 tvt.js 编辑器生态
统一资源服务可供下列应用读取:
- 🌈 tvt.js 开源基座
- 🌄 区域三维场景编辑器
- 🗺️ GIS 地理空间编辑器
- 🎨 材质编辑器
🧱 工作流程
本地 assets 目录
│
├── 调试模式:实时扫描 ──> /config ──> tvt.js 编辑器
│ └──> 预览、搜索、上传、复制 URL
│
└── 编译发布:构建整合 ──> dist/
├──> config.json
├──> index.html
└──> assets/ ──> 静态服务器或 CDN
本地服务负责素材管理与调试;发布产物只包含构建时已有资源,不依赖 Node.js 服务端,也不会暴露上传接口。
🧰 技术特点
| 能力 | 说明 |
|---|---|
| 零框架运行时 | 服务端基于 Node.js HTTP 模块,依赖精简 |
| 统一资源清单 | 自动生成稳定 ID、资源类型、URL、大小、时间与 SHA-256 哈希 |
| 实时扫描 | 调试模式下每次请求 /config 都会重新扫描素材目录 |
| 静态发布 | 构建结果可直接部署到静态服务器或 CDN |
| 跨域访问 | 本地服务内置 CORS 响应头,便于在线编辑器读取 |
| 视频 Range | 支持分段请求,便于视频播放和拖动进度 |

