diff --git a/apps/mini-user/serve.json b/apps/mini-user/serve.json new file mode 100644 index 0000000..f7fcd9a --- /dev/null +++ b/apps/mini-user/serve.json @@ -0,0 +1,7 @@ +{ + "cleanUrls": false, + "trailingSlash": false, + "rewrites": [ + { "source": "**", "destination": "/index.html" } + ] +} diff --git a/deploy/ecosystem.config.cjs b/deploy/ecosystem.config.cjs index 63dec18..92b4241 100644 --- a/deploy/ecosystem.config.cjs +++ b/deploy/ecosystem.config.cjs @@ -16,10 +16,12 @@ module.exports = { }, { // C 端改为 mini-user H5 产物(端口仍 8091,进程名保持兼容旧脚本) + // cleanUrls:false 见 apps/mini-user/serve.json(发版时复制到 dist/) + // 否则 /pages/x/index 会被 301 成 /pages/x,Location 缺 /user 前缀 → Taro 白屏 name: 'dukang-h5-user', cwd: `${APP_ROOT}/apps/mini-user`, script: 'npx', - args: 'serve -s dist -l 8091', + args: 'serve dist -l 8091 -c serve.json', interpreter: 'none', instances: 1, exec_mode: 'fork', diff --git a/deploy/nginx-runxian-dukang-ssl.conf b/deploy/nginx-runxian-dukang-ssl.conf index 30c87fb..85f6e78 100644 --- a/deploy/nginx-runxian-dukang-ssl.conf +++ b/deploy/nginx-runxian-dukang-ssl.conf @@ -61,10 +61,17 @@ server { return 302 /user/; } + # Taro 路由页是 /pages/xxx/index;补全短路径,避免 UniversalRouter 404 白屏 + location ~ ^/user/pages/([^/]+)/?$ { + return 302 /user/pages/$1/index$is_args$args; + } + location /user/ { rewrite ^/user/(.*)$ /$1 break; proxy_pass http://127.0.0.1:8091; proxy_http_version 1.1; + # serve 若仍发出绝对 Location:/pages/...,补回 /user 前缀 + proxy_redirect / /user/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; diff --git a/deploy/nginx-runxian-dukang.conf b/deploy/nginx-runxian-dukang.conf index 241857a..4acd06e 100644 --- a/deploy/nginx-runxian-dukang.conf +++ b/deploy/nginx-runxian-dukang.conf @@ -36,10 +36,15 @@ server { return 302 /user/; } + location ~ ^/user/pages/([^/]+)/?$ { + return 302 /user/pages/$1/index$is_args$args; + } + location /user/ { rewrite ^/user/(.*)$ /$1 break; proxy_pass http://127.0.0.1:8091; proxy_http_version 1.1; + proxy_redirect / /user/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; diff --git a/deploy/remote-release.sh b/deploy/remote-release.sh index cf3e4e3..fdf8554 100644 --- a/deploy/remote-release.sh +++ b/deploy/remote-release.sh @@ -81,8 +81,15 @@ if [[ "$SKIP_BUILD" == false ]]; then --filter @dukang/h5-partner \ --filter @dukang/admin-web \ build + # serve 读取 dist/serve.json(相对静态根目录) + if [[ -f "$APP_ROOT/apps/mini-user/serve.json" ]]; then + cp -f "$APP_ROOT/apps/mini-user/serve.json" "$APP_ROOT/apps/mini-user/dist/serve.json" + fi else echo "==> 4. 跳过构建" + if [[ -f "$APP_ROOT/apps/mini-user/serve.json" && -d "$APP_ROOT/apps/mini-user/dist" ]]; then + cp -f "$APP_ROOT/apps/mini-user/serve.json" "$APP_ROOT/apps/mini-user/dist/serve.json" + fi fi echo "==> 5. 重启 PM2"