feat: embed frontend in backend
This commit is contained in:
1 parent
22f9bcfa46
commit
fbe6abd519
12 files changed
+217
-13
No files matched your search
@@ -8,6 +8,7 @@
|
||||
|---|---|
|
||||
| `src/WebDrop.Core` | 领域类型、规则和业务逻辑(`ChannelService`、`ShareService`),不做 IO,只依赖抽象 |
|
||||
| `src/WebDrop.Storage` | SQLite 存储(`SqliteChannelStore`)和磁盘 blob(`DiskBlobStore`) |
|
||||
| `src/WebDrop.Frontend` | 可选嵌入 Vite dist,提供静态文件、SPA fallback 与页面 CSP;不依赖业务层 |
|
||||
| `src/WebDrop.Api` | Minimal API、WebSocket / SSE / 长轮询、订阅枢纽、后台清理、限流、安全头 |
|
||||
| `tests/` | `Core.Tests`(单元与服务层,真实 SQLite)、`Api.Tests`(真实 Kestrel 上的集成测试) |
|
||||
|
||||
@@ -16,6 +17,7 @@
|
||||
```powershell
|
||||
dotnet test # 全部测试
|
||||
dotnet run --project src/WebDrop.Api # 开发运行,默认 http://localhost:5000
|
||||
npm --prefix ../web run build # 先构建前端时,dotnet publish 会自动嵌入 web/dist
|
||||
|
||||
# NativeAOT 发布(Windows 需要 vswhere.exe 在 PATH 里)
|
||||
$env:PATH += ";${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer"
|
||||
@@ -47,6 +49,7 @@ python3 scripts/smoke.py out/linux-x64/webdrop # 跨平台版本,只用
|
||||
- 单实例部署:订阅枢纽在进程内,多实例需要换成外部发布订阅。
|
||||
- 日志不记录请求头、请求体、完整 URL;Hosting 诊断日志已关闭,避免频道 id 进入日志。
|
||||
- NativeAOT:不用 SignalR、EF Core、MVC、反射式 JSON;所有 AOT / 裁剪警告视为错误。
|
||||
- `WebDrop.Frontend` 只负责嵌入静态资源与 SPA fallback。Dockerfile 自动构建 `web/`;单独发布 API 时,只有 `web/dist` 存在或指定 `WebDropFrontendDist` 后才包含前端。
|
||||
|
||||
## 验证码(Cap)
|
||||
|
||||
|
||||
Reference in new issue
Block a user