Bladeren bron

fix: 预览 Vite dev server 添加 --base 参数

- 生产环境通过 PREVIEW_BASE_PATH=/ads-preview/ 设置 Vite base 路径
- Vite 返回的 HTML 中资源路径自动带 /ads-preview/ 前缀
- 修复预览页面资源 404 的问题
guoziyun 3 weken geleden
bovenliggende
commit
931dff40d7

+ 1 - 0
ecosystem.config.js

@@ -8,6 +8,7 @@ module.exports = {
         NODE_ENV: "production",
         PORT: 3001,
         PREVIEW_PUBLIC_URL: "https://color2.jccytech.cn/ads-preview/",
+        PREVIEW_BASE_PATH: "/ads-preview/",
       },
       // 构建服务可能需要较多内存
       max_memory_restart: "512M",

+ 1 - 1
platform/server/dist/services/previewService.d.ts.map

@@ -1 +1 @@
-{"version":3,"file":"previewService.d.ts","sourceRoot":"","sources":["../../src/services/previewService.ts"],"names":[],"mappings":"AAoCA;;GAEG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CA2C1B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,UAAU,EAAE,MAAM,GACjB,IAAI,CAON;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAgBlC;AAED,wBAAgB,gBAAgB,IAAI;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAMrG"}
+{"version":3,"file":"previewService.d.ts","sourceRoot":"","sources":["../../src/services/previewService.ts"],"names":[],"mappings":"AAoCA;;GAEG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAkD1B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,UAAU,EAAE,MAAM,GACjB,IAAI,CAON;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAgBlC;AAED,wBAAgB,gBAAgB,IAAI;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAMrG"}

+ 9 - 2
platform/server/dist/services/previewService.js

@@ -54,8 +54,15 @@ async function startPreview(creativeId, theme, storageDir) {
     const configPath = path_1.default.join(TEMPLATE_DIR, "src", "filler", "_ad_config_.ts");
     fs_1.default.writeFileSync(configPath, configContent, "utf-8");
     // 4. 启动 Vite dev server
-    console.log(`[preview] Starting Vite dev server on port ${PREVIEW_PORT}...`);
-    viteProcess = (0, child_process_1.spawn)("npx", ["vite", "--port", String(PREVIEW_PORT), "--strictPort"], {
+    // 生产环境通过 nginx /ads-preview/ 代理时需要设置 base 路径
+    const previewBase = process.env.PREVIEW_BASE_PATH || "/";
+    console.log(`[preview] Starting Vite dev server on port ${PREVIEW_PORT} (base: ${previewBase})...`);
+    viteProcess = (0, child_process_1.spawn)("npx", [
+        "vite",
+        "--port", String(PREVIEW_PORT),
+        "--strictPort",
+        "--base", previewBase,
+    ], {
         cwd: TEMPLATE_DIR,
         env: { ...process.env, AD_CONFIG_PATH: "src/filler/_ad_config_.ts" },
         stdio: ["ignore", "pipe", "pipe"],

File diff suppressed because it is too large
+ 0 - 0
platform/server/dist/services/previewService.js.map


+ 9 - 2
platform/server/src/services/previewService.ts

@@ -54,8 +54,15 @@ export async function startPreview(
   fs.writeFileSync(configPath, configContent, "utf-8");
 
   // 4. 启动 Vite dev server
-  console.log(`[preview] Starting Vite dev server on port ${PREVIEW_PORT}...`);
-  viteProcess = spawn("npx", ["vite", "--port", String(PREVIEW_PORT), "--strictPort"], {
+  // 生产环境通过 nginx /ads-preview/ 代理时需要设置 base 路径
+  const previewBase = process.env.PREVIEW_BASE_PATH || "/";
+  console.log(`[preview] Starting Vite dev server on port ${PREVIEW_PORT} (base: ${previewBase})...`);
+  viteProcess = spawn("npx", [
+    "vite",
+    "--port", String(PREVIEW_PORT),
+    "--strictPort",
+    "--base", previewBase,
+  ], {
     cwd: TEMPLATE_DIR,
     env: { ...process.env, AD_CONFIG_PATH: "src/filler/_ad_config_.ts" },
     stdio: ["ignore", "pipe", "pipe"],

Some files were not shown because too many files changed in this diff