Expand description
服务端启动流程与 Axum 路由组装。
main.rs 只保留全局分配器与入口调用;本模块负责服务端启动期的
配置、数据库自举、后台任务生命周期和路由组合。路由装配可能被重复调用
(例如测试),因此后台任务启动必须具备进程级幂等性。
Structs§
Constants§
- APP_
REQUEST_ 🔒TIMEOUT - BACKUP_
IMPORT_ 🔒TIMEOUT - EXPORT_
TIMEOUT 🔒 - IMAGE_
UPLOAD_ 🔒MAX_ BYTES - IMAGE_
UPLOAD_ 🔒TIMEOUT - SHUTDOWN_
DRAIN_ 🔒TIMEOUT - 收到退出信号后等待在途请求结束的上限;须小于容器停止超时(podman 默认 10 秒), 否则仍会被 SIGKILL。
Statics§
Functions§
- build_
router 🔒 - exe_dir 🔒
- 可执行文件所在目录;
hash.txt与它同目录。 - fatal_
bind_ 🔒error - init_
cache_ 🔒namespace - 发布命名空间(plan §6.7):一个 SSR 缓存实例只服务一个发布,
发布变化即整表失效,杜绝缓存命中跨发布「串味」。release 取
发布清单(
<site_root>/release-manifest.json)的 release_id; dev 无清单时回退构建信息(git describe 含 dirty 标记)。 - init_
tracing 🔒 - leptos_
options 🔒 - Leptos 运行配置,与
Cargo.toml的[package.metadata.leptos]保持一致。 - previous_
public_ 🔒dir - 上一发布资源目录(plan §6.7 滚动发布的旧资源保留窗口)。配置了但不是 目录时仅告警停用——保留窗口是兜底增强,不能反过来阻止服务启动。
- run
- 服务端入口。
- run_
database_ 🔒bootstrap - serve_
application 🔒 - server_
addr 🔒 - 监听地址:
IP(默认 127.0.0.1)+PORT(默认 8080)。解析失败直接退出。 - shutdown_
signal 🔒 - 等待 Ctrl-C 或 SIGTERM,触发优雅退出。
- site_
fallback 🔒 - 未匹配任何路由的请求:先查站点目录里的静态文件(带
.br预压缩协商), 其余交给 Leptos 渲染(未知页面由NotFound设置 404)。/pkg/下缺失的文件 直接返回空 404,不渲染页面。 - site_
root 🔒 - 站点根目录(
public/资源与pkg/前端产物所在)。 - spawn_
background_ 🔒tasks_ once - validate_
required_ 🔒configuration - validate_
site_ 🔒assets - 校验前端产物与服务端二进制配套:
hash.txt(与可执行文件同目录)指向的 脚本、WASM 与分包清单必须在<site_root>/pkg/下真实存在,缺失即拒绝启动, 不静默拼出混合版本。debug 与 release 都执行。