소스 검색

fix: 将 base 路径改为 vite.config.js 内通过环境变量读取

- templates/coloring/vite.config.js: base = process.env.PREVIEW_BASE_PATH || '/'
- previewService: 去掉 --base CLI 参数,改为通过 PREVIEW_BASE_PATH 环境变量传入
- 环境变量在 ecosystem.config.js 中已配置
guoziyun 3 주 전
부모
커밋
ad189e5e25

+ 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,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"}
+{"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,CAmD1B;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"}

+ 7 - 6
platform/server/dist/services/previewService.js

@@ -53,18 +53,19 @@ async function startPreview(creativeId, theme, storageDir) {
     const configContent = (0, configGenerator_1.generateAdConfig)({ 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
-    // 生产环境通过 nginx /ads-preview/ 代理时需要设置 base 路径
-    const previewBase = process.env.PREVIEW_BASE_PATH || "/";
-    console.log(`[preview] Starting Vite dev server on port ${PREVIEW_PORT} (base: ${previewBase})...`);
+    // 4. 启动 Vite dev server(base 路径由 PREVIEW_BASE_PATH 环境变量传入 vite.config.js)
+    console.log(`[preview] Starting Vite dev server on port ${PREVIEW_PORT}...`);
     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" },
+        env: {
+            ...process.env,
+            AD_CONFIG_PATH: "src/filler/_ad_config_.ts",
+            PREVIEW_BASE_PATH: process.env.PREVIEW_BASE_PATH || "/",
+        },
         stdio: ["ignore", "pipe", "pipe"],
     });
     viteProcess.stdout?.on("data", (data) => {

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
platform/server/dist/services/previewService.js.map


+ 7 - 6
platform/server/src/services/previewService.ts

@@ -53,18 +53,19 @@ export async function startPreview(
   const configPath = path.join(TEMPLATE_DIR, "src", "filler", "_ad_config_.ts");
   fs.writeFileSync(configPath, configContent, "utf-8");
 
-  // 4. 启动 Vite dev server
-  // 生产环境通过 nginx /ads-preview/ 代理时需要设置 base 路径
-  const previewBase = process.env.PREVIEW_BASE_PATH || "/";
-  console.log(`[preview] Starting Vite dev server on port ${PREVIEW_PORT} (base: ${previewBase})...`);
+  // 4. 启动 Vite dev server(base 路径由 PREVIEW_BASE_PATH 环境变量传入 vite.config.js)
+  console.log(`[preview] Starting Vite dev server on port ${PREVIEW_PORT}...`);
   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" },
+    env: {
+      ...process.env,
+      AD_CONFIG_PATH: "src/filler/_ad_config_.ts",
+      PREVIEW_BASE_PATH: process.env.PREVIEW_BASE_PATH || "/",
+    },
     stdio: ["ignore", "pipe", "pipe"],
   });
 

+ 4 - 0
templates/coloring/vite.config.js

@@ -42,7 +42,11 @@ module.exports = defineConfig(({ mode }) => {
   const output = platformBuild?.output;
   const outDir = output ? `dist/${output}` : "dist";
 
+  // base: 正常构建为 "/",预览时通过环境变量设为 "/ads-preview/"
+  const base = process.env.PREVIEW_BASE_PATH || "/";
+
   return {
+    base,
     plugins: [viteSingleFile(), finalizeHtmlPlugin(outDir, adapter)],
     server: {
       allowedHosts: ["color2.jccytech.cn", "localhost", ".jccytech.cn"],

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.