将 zTools2 托管的页面/静态/探针/WebSocket 路由全部从顶级路径迁移到 /api/ 下:
- 页面:/pdf -> /api/pdf、/pdf-admin -> /api/pdf-admin、/upload -> /api/upload、
/files -> /api/files-page、/wb/{id} -> /api/wb-page/{id}、/wb-admin -> /api/wb-admin
(页面类加 -page 后缀以规避同名 REST API /api/files、/api/wb/{id})
- 静态资源:/static -> /api/static
- 探针:/health -> /api/health
- WebSocket:/ws/wb/{id} -> /api/ws/wb/{id}
- 前端 HTML 壳与 JS 中的资源/页间链接/WS URL 同步更新
- 手动测试脚本 BASE_WS 同步
这样反代与 vite proxy 只需一条 /api/ 规则即可转发全部入口;
前端 iframe 用同源相对路径 /api/pdf,与环境无关,不再误打到其它环境域名。
README 新增「路由约定」说明。
45 lines
1.4 KiB
HTML
45 lines
1.4 KiB
HTML
<!doctype html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<title>PDF 转换 - zikai</title>
|
||
<link rel="stylesheet" href="/api/static/common.css">
|
||
<link rel="stylesheet" href="/api/static/pdf.css">
|
||
</head>
|
||
<body>
|
||
<div class="wrap">
|
||
<h1>PDF 转换</h1>
|
||
<p class="sub">上传 epub 文件转为 PDF,转换完成后可下载。单文件上限 250MB。凭浏览器 cookie 记住你的任务。</p>
|
||
|
||
<div id="uploader" class="uploader">
|
||
<div class="dropzone" id="dropzone">
|
||
<div class="dropzone__hint">拖入 .epub 文件,或</div>
|
||
<label class="btn primary">
|
||
点击选择文件
|
||
<input type="file" id="fileInput" accept=".epub,application/epub+zip" hidden>
|
||
</label>
|
||
<div class="dropzone__limit">仅支持 epub,最大 250MB</div>
|
||
</div>
|
||
<div id="uploadProgress" class="upload-progress hidden">
|
||
<div class="upload-progress__name" id="uploadName"></div>
|
||
<div class="bar"><div class="bar__fill" id="uploadBar"></div></div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="toolbar">
|
||
<button class="btn primary" id="refresh">刷新</button>
|
||
<span class="muted" id="count"></span>
|
||
</div>
|
||
|
||
<div id="list">
|
||
<div class="skel">加载中…</div>
|
||
</div>
|
||
|
||
<p class="foot">zikai file service</p>
|
||
</div>
|
||
<script src="/api/static/common.js"></script>
|
||
<script src="/api/static/pdf.js"></script>
|
||
</body>
|
||
</html>
|