fix: MindSpace remote sync, thumbnail fallback, and Plaza URL guards
Ensure page sync runs via pageSyncService in remote mode, fall back to workspace HTML when storage assets are missing, and prevent production Portal from linking to loopback Plaza URLs baked in at build time. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -104,6 +104,30 @@ pnpm setup:plaza-tunnel
|
||||
| `H5_PORT` | 8081 | Portal / API 端口 |
|
||||
| `PLAZA_LOCAL_HOST` | plaza.tkmind.cn | 本地域名 |
|
||||
| `PLAZA_PUBLIC_BASE` | https://plaza.tkmind.cn | 公开 URL 前缀 |
|
||||
| `VITE_PLAZA_BASE` | (见下) | Portal 前端「逛 Plaza」链接;**编译期**写入 dist |
|
||||
|
||||
### Portal「逛 Plaza」链接(MindSpace / 发布成功页)
|
||||
|
||||
Plaza 是独立域名 `plaza.tkmind.cn`,与 Portal `m.tkmind.cn` 不同。前端通过 `src/utils/publicUrl.ts` → `public-site-bases.mjs` 解析:
|
||||
|
||||
| 环境 | 期望链接 |
|
||||
|------|----------|
|
||||
| 本机 `127.0.0.1` / `localhost` | `http://127.0.0.1:3001/plaza` |
|
||||
| 生产 `m.tkmind.cn` | `https://plaza.tkmind.cn/plaza` |
|
||||
|
||||
**为何生产曾出现 127?** `VITE_*` 在 `vite build` 时写入 bundle。若本机 `.env` 含 `VITE_PLAZA_BASE=http://127.0.0.1:3001`,未覆盖就直接打生产包,会把 127 带进 `m.tkmind.cn`。
|
||||
|
||||
**彻底修复(三层):**
|
||||
|
||||
1. **运行时守卫**:在 `m.tkmind.cn` 等公网 host 上,即使 bundle 内是 loopback,也强制用 `https://plaza.tkmind.cn`(见 `public-site-bases.mjs`)。
|
||||
2. **构建默认值**:`scripts/build-portal-runtime.mjs` 在未显式设置时注入 `VITE_PLAZA_BASE=https://plaza.tkmind.cn`。
|
||||
3. **勿在生产构建用本地 .env**:发 Portal runtime 前确认 `npm run build` / `build-portal-runtime.mjs` 未读取带 127 的 `VITE_PLAZA_BASE`。
|
||||
|
||||
验证:
|
||||
|
||||
```bash
|
||||
node --test public-site-bases.test.mjs
|
||||
```
|
||||
|
||||
## 已弃用
|
||||
|
||||
|
||||
Reference in New Issue
Block a user