From 3fc618a6885d26b1ed6005eb6d5de0318a0b82c1 Mon Sep 17 00:00:00 2001 From: wuyuan Date: Wed, 30 Sep 2026 11:05:40 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=BB=8E=E4=B8=BB?= =?UTF-8?q?=E7=AB=99=E5=B5=8C=E5=85=A5=E8=AE=BF=E9=97=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nginx/default.conf | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/nginx/default.conf b/nginx/default.conf index d24b7bea..224aac66 100644 --- a/nginx/default.conf +++ b/nginx/default.conf @@ -2,18 +2,32 @@ server { listen 4000; server_name localhost; + # Location 用相对路径:容器经网关反代对外服务,绝对 Location 会带上 + # 容器监听端口/内部 host,跳转到不可达地址 + absolute_redirect off; + + root /usr/share/nginx/html; + index index.html index.htm; + add_header 'Access-Control-Allow-Origin' '*'; + add_header 'Access-Control-Allow-Credentials' 'true'; + client_max_body_size 50m; + # 仅中文页面的旧根路径 URL -> /zh/ 新路径(由 scripts/gen-rewrites.mjs 生成) include /etc/nginx/zh-only-redirects.conf; - location / { - index index.html index.htm; - - root /usr/share/nginx/html; - add_header 'Access-Control-Allow-Origin' '*'; - add_header 'Access-Control-Allow-Credentials' 'true'; - - client_max_body_size 50m; + # cleanUrls 平铺布局下,带尾斜杠的地址(如主站文档入口的 landing + # zh/about/overview/)既没有同名目录也没有 xxx/.html,若不回正会 + # 兜底到首页 HTML,引发客户端水合错乱(首页与文档内容叠加)。 + # 真实目录(/、/docs/、/docs/zh/ 等)仍按 index 正常服务,其余一律 + # 301 去掉尾斜杠,回正到能命中下方 $uri.html 的干净 URL + location ~ /$ { + try_files $uri/ @cleanslash; + } + location @cleanslash { + rewrite ^(.*)/$ $1 permanent; + } + location / { # cleanUrls: true 的产物是平铺的 xxx.html,必须尝试 $uri.html, # 否则所有干净 URL 都会兜底到首页 HTML,引发客户端水合错乱 try_files $uri $uri.html $uri/ /docs/index.html;