From d1c41e8fc5638e2ca104058a9510c41be0bed155 Mon Sep 17 00:00:00 2001 From: xfy Date: Thu, 16 Jul 2026 11:37:13 +0800 Subject: [PATCH] =?UTF-8?q?fix(wasm):=20hooks=20=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E7=A7=BB=E5=87=BA=20server=20gate=EF=BC=8C=E5=8F=8C=E7=AB=AF?= =?UTF-8?q?=E5=8F=AF=E8=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit mod hooks 原被 cfg(feature = "server") 包裹,WASM 前端无法引用 hooks 中的 代码。移出后 server 与 WASM 两端均能访问 hooks 模块。 同步修正 backup.rs 的 import 排序(cargo fmt 自动调整) --- src/main.rs | 11 ++++++----- src/pages/admin/system/backup.rs | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/main.rs b/src/main.rs index 98ffbba..15886e4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -35,9 +35,9 @@ pub mod infra; mod highlight; // middleware:Axum 中间件与启动期纯函数(cache-control / admin 守卫 / 压缩层), // server-only。从 main.rs 抽出以便独立测试,路由组装处以 crate::middleware::xxx 调用。 +mod hooks; #[cfg(feature = "server")] mod middleware; -mod hooks; mod models; mod pages; mod router; @@ -349,7 +349,9 @@ fn main() { // layer 顺序:后加的最外层先执行。CSRF 最外层先拦截非法来源。 let mut app_routes = dioxus_app .layer(axum::middleware::from_fn(ssr_generation_middleware)) - .layer(axum::middleware::from_fn(crate::middleware::add_cache_control)) + .layer(axum::middleware::from_fn( + crate::middleware::add_cache_control, + )) .layer(axum::middleware::from_fn(crate::api::csrf::csrf_middleware)); if let Some(layer) = crate::middleware::compression_layer_from_env() { app_routes = app_routes.layer(layer); @@ -360,9 +362,8 @@ fn main() { )); // admin_guard 置于最外层(最后添加 = 最先执行):未登录的 /admin* 请求 // 在 CSRF / cache / SSR 渲染之前就被 302 短路,零渲染开销。 - let app_routes = app_routes.layer(axum::middleware::from_fn( - crate::middleware::admin_guard, - )); + let app_routes = + app_routes.layer(axum::middleware::from_fn(crate::middleware::admin_guard)); // 静态资源路由:图片文件服务。 // 注意:`dioxus::server::serve()` 接管了 listener 与 `into_make_service` diff --git a/src/pages/admin/system/backup.rs b/src/pages/admin/system/backup.rs index 8b572f8..9a1faf4 100644 --- a/src/pages/admin/system/backup.rs +++ b/src/pages/admin/system/backup.rs @@ -2,7 +2,7 @@ use dioxus::prelude::*; -use crate::components::ui::{BTN_OUTLINE, BTN_TEXT_AMBER, BTN_TEXT_RED, LoadingButton}; +use crate::components::ui::{LoadingButton, BTN_OUTLINE, BTN_TEXT_AMBER, BTN_TEXT_RED}; use super::format_bytes;