server { listen 80; server_name _; root /usr/share/nginx/html; index index.html; # 过渡形态:站点挂在统一网关的子路径下(没有独立域名时用)。 # # VitePress 产物里的资源引用是绝对路径(assets/xxx), # 而 dist 目录是平铺的(index.html、assets/ 直接在根)。 # 因此必须在子路径下用 alias 把前缀剥掉再落到产物目录, # 否则页面能返回 200 但 JS/CSS 全部 404 → 白屏。 # 网关侧对应 location ^~ { proxy_pass http://gw_website; }(不剥前缀)。 location __SITE_BASE__ { alias /usr/share/nginx/html/; try_files $uri $uri.html $uri/ $uri/index.html =404; } # 访问不带尾斜杠的前缀时补斜杠,否则相对资源路径会解析错 location = __SITE_BASE_NO_SLASH__ { return 301 __SITE_BASE__; } }