# 前端 CDN 自托管（F2e-06）

**日期**: 2026-05-22

## 变更

- 新增 `web/app/vendor/`：Tailwind Browser 4.0.6、Alpine 3.14.8、xterm 5.3.0、qrious 4.0.2 等固定版本。
- 新增 `scripts/sync_frontend_vendor.py`：下载 vendor 并批量将 16 个 HTML 的 CDN URL 替换为 `/app/vendor/*`。
- `web/app/vendor/manifest.json`：记录版本、源 URL、`sha384` 完整性（供日后 Subresource Integrity 或审计）。

## 升级 vendor

```bash
# 1. 修改 scripts/sync_frontend_vendor.py 中 VENDOR_MANIFEST 版本
# 2. 执行
python scripts/sync_frontend_vendor.py
# 3. 提交 vendor/ + HTML + manifest.json
```

## 验证

```bash
pytest tests/test_security_unit.py::test_html_pages_do_not_load_external_cdn -q
```

浏览器 Network 面板应无 `cdn.jsdelivr.net` 请求。
