简介及架构

基于 tvt.js 生态的静态资源配置、预览与发布服务 Static Asset Service for tvt.js

👇🏻 在线预览地址:asset-manager.icegl.cnopen in new window

tvt.js 静态资源发布服务

📦 项目开源地址: 👉 https://gitee.com/ice-gl/tvt-asset-manager-serveopen in new window

✨ 项目简介

tvt-asset-manager-servetvt.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 编辑器生态

统一资源服务可供下列应用读取:

🧱 工作流程

本地 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支持分段请求,便于视频播放和拖动进度