diff --git a/src/main.rs b/src/main.rs index 31ec245..68e228f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -21,7 +21,6 @@ mod db; mod highlight; mod hooks; #[cfg(feature = "server")] -mod middleware; mod models; mod pages; mod router; @@ -104,11 +103,6 @@ fn main() { // 合并三条路由:自定义 API、静态资源、Dioxus 主应用 let router = api_routes.merge(static_routes).merge(dioxus_app); - // 对 SSR 返回的 HTML 做空白压缩(保留
/ 等标签内格式)
-            let router = router.layer(axum::middleware::from_fn(
-                crate::middleware::minify_html::layer,
-            ));
-
             Ok(router)
         });
     }
diff --git a/src/middleware/minify_html.rs b/src/middleware/minify_html.rs
deleted file mode 100644
index 1494c3e..0000000
--- a/src/middleware/minify_html.rs
+++ /dev/null
@@ -1,63 +0,0 @@
-//! SSR HTML 空白压缩中间件。
-//!
-//! 对 Dioxus fullstack 返回的 `text/html` 响应做轻量 minify。
-//!
-//! 注意:这里**不**维护 per-URL 缓存。同一个 URL 在 admin 登录态与匿名态下
-//! 渲染出的 HTML 不同(例如是否带管理按钮),按 URL 缓存会导致跨用户内容
-//! 泄露。Dioxus 的增量渲染器(ISRG)本身已经按 URL 缓存了 SSR HTML,
-//! 这里的 minify 只是对其输出做一次无损空白折叠,无需再叠加一层缓存。
-
-#[cfg(feature = "server")]
-use axum::{
-    body::Body,
-    extract::Request,
-    http::{header, StatusCode},
-    middleware::Next,
-    response::Response,
-};
-use http_body_util::BodyExt;
-
-/// Axum 中间件入口。
-pub async fn layer(request: Request, next: Next) -> Response {
-    let response = next.run(request).await;
-
-    let is_html = response
-        .headers()
-        .get(header::CONTENT_TYPE)
-        .and_then(|v| v.to_str().ok())
-        .map(|ct| ct.starts_with("text/html"))
-        .unwrap_or(false);
-
-    if !is_html {
-        return response;
-    }
-
-    let (parts, body) = response.into_parts();
-    let bytes = match body.collect().await {
-        Ok(collected) => collected.to_bytes(),
-        Err(_) => {
-            return Response::builder()
-                .status(StatusCode::INTERNAL_SERVER_ERROR)
-                .body(Body::empty())
-                .expect("failed to build error response");
-        }
-    };
-
-    let original = String::from_utf8_lossy(&bytes);
-    let minified = crate::utils::html_minify::minify_html(&original);
-
-    let mut response = Response::builder()
-        .status(parts.status)
-        .header(header::CONTENT_TYPE, "text/html; charset=utf-8")
-        .body(Body::from(minified.clone()))
-        .expect("failed to build minified response");
-
-    // 保留原响应的其他 header,并修正 Content-Length
-    *response.headers_mut() = parts.headers;
-    response.headers_mut().remove(header::TRANSFER_ENCODING);
-    response
-        .headers_mut()
-        .insert(header::CONTENT_LENGTH, minified.len().into());
-
-    response
-}
diff --git a/src/middleware/mod.rs b/src/middleware/mod.rs
deleted file mode 100644
index b276e30..0000000
--- a/src/middleware/mod.rs
+++ /dev/null
@@ -1,2 +0,0 @@
-#[cfg(feature = "server")]
-pub mod minify_html;
diff --git a/src/utils/html_minify.rs b/src/utils/html_minify.rs
deleted file mode 100644
index 3ff2e16..0000000
--- a/src/utils/html_minify.rs
+++ /dev/null
@@ -1,93 +0,0 @@
-//! HTML 空白压缩工具函数。
-//!
-//! 仅服务端使用。对 HTML 片段做轻量 minify:
-//! - 合并标签之间连续空白为一个空格;
-//! - 移除普通 HTML 注释,但**保留 Dioxus hydration marker 注释**;
-//! - 保留 `
`、``、`