feat(website): 本地联调 /buy 测试购买页(登录→下单→mock 付款→轮询开通)+ dev vite proxy

This commit is contained in:
wangjia
2026-07-11 01:32:11 +08:00
parent bc9aa38392
commit 43fead8823
4 changed files with 631 additions and 0 deletions
+23
View File
@@ -24,5 +24,28 @@ export default defineConfig({
// 关闭 JS 内联,保证 script-src 'self' 严格 CSP 下可运行。
assetsInlineLimit: 0,
},
server: {
// /buy 本地联调测试页专用:浏览器同源调后端,避免跨域。仅 dev 生效,不影响构建产物。
//
// 坑:Astro 全站 trailingSlash:'always'dev server 对不带尾斜杠、又没有匹配页面路由
// 的路径(如 /v1/pay/catalog)会在到达这里的 vite 代理之前就短路返回 Astro 自己的 404
// (已用本地 mock 后端验证:带尾斜杠能命中此代理,不带则 404,Astro middleware 同样不触发,
// 因为它只包裹「匹配到的」路由渲染,不包裹压根没有路由匹配的任意路径)。
// 于是这里约定:BuyFlow.jsx 发请求一律带尾斜杠(`/v1/pay/catalog/` 这类,与全站
// trailingSlash 约定一致),再用 rewrite 在转发前把尾斜杠去掉,避免打到后端 chi 路由
// (未挂 StripSlashes,尾斜杠会 404)。
proxy: {
'/v1': {
target: 'http://127.0.0.1:8080',
changeOrigin: true,
rewrite: (p) => p.replace(/\/$/, ''),
},
'/paydev': {
target: 'http://127.0.0.1:8090',
changeOrigin: true,
rewrite: (p) => p.replace(/^\/paydev/, '/api/v2/dev').replace(/\/$/, ''),
},
},
},
},
});