在本站中
本站是开源的,仓库在 yuxuetr/rustineverything。这一部分的站点链接都指向提交 89a61b1(2026-10-23),行号以它为准;写作时本站仓库已经到 eefd161,多出的请求体中间件只描述、不链接。那个提交的 Cargo.lock 锁的是 dioxus 0.7.9,和本卷的 0.7.10 只差 CLI,运行时代码相同,不需要升级评估。实验对着本地 dx serve 起的站点(只发 GET)和照本站形状写的 dioxus 0.7.10 小应用。
本站的 axum 路由、tower 中间件、日志、连接、请求体缓冲、sea-orm 查询已经在别的卷里讲过,这里只看 dioxus 自己这一层,其余的链过去。
- 本站怎么起服务:
dioxus::serve包住dioxus::server::router(App),默认配置不流式、没有增量缓存;五层中间件各管哪一段,首屏的 server function 调用不经过它们;body_limit_mw让带长度的超限请求得到 413,分块请求仍会 panic 成 500;未知路径的 404 正文是整张路由的匹配日志,加一个 catch-all 项和已有的NotFound就能换成站点页面。 - 本站的页面怎么取数据:76 个 server function、23 处
use_server_future、36 处use_resource的分布;用use_server_future的页面首屏完整,但水合数据把值发两遍、体积约 2.7 倍,文档页一半是全站目录树;主题、布局、模块开关和论坛列表不进首屏,ModuleGate只在客户端生效;状态码、eval 与 CSP、脚本转义、错误外泄逐项核对。
flowchart TB mainrs["main.rs"] --> serve["dioxus::serve"] serve --> router["router(App)"] router --> layers["五层中间件"] layers --> ssr["SSR 页面"] layers --> sfn["server fn"] ssr --> usf["use_server_future"] ssr --> ures["use_resource"] usf --> first["进首屏和水合数据"] ures --> later["水合后再取"]
💬 关联讨论
发起讨论加载中...