Explorar o código

fix: proxy bug

叶静 hai 3 días
pai
achega
64a9239199
Modificáronse 3 ficheiros con 15 adicións e 16 borrados
  1. 2 1
      .env.development
  2. 1 1
      src/sheep/config/api-routing.js
  3. 12 14
      vite.config.js

+ 2 - 1
.env.development

@@ -20,7 +20,8 @@ SHEEP_USE_MOCK = false
 
 # 代理配置
 SHEEP_USE_PROXY = false
-SHEEP_PROXY_TARGET = http://192.168.0.107:8401
+SHEEP_PROXY_PREFIX = '/api'
+SHEEP_PROXY_TARGET = http://124.222.152.234:8501
 
 ##### API路由配置
 # API路由功能总开关

+ 1 - 1
src/sheep/config/api-routing.js

@@ -52,7 +52,7 @@ class ApiRoutingManager {
       // 当使用代理时,baseURL应该为空或者使用相对路径,让Vite代理处理
       const processedConfig = {
         ...config,
-        baseURL: '',
+        baseURL: import.meta.env.SHEEP_PROXY_PREFIX,
         url: config.url.startsWith('/') ? config.url : '/' + config.url,
       };
       return processedConfig;

+ 12 - 14
vite.config.js

@@ -1,7 +1,7 @@
 /**
  * vite 配置文件
  */
-import { loadEnv } from 'vite';
+import { defineConfig, loadEnv } from 'vite';
 import { resolve } from 'path';
 import vue from '@vitejs/plugin-vue';
 import vueJsx from '@vitejs/plugin-vue-jsx';
@@ -11,8 +11,9 @@ import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';
 import UnoCSS from 'unocss/vite';
 
 // https://vitejs.dev/config/
-export default (command, mode) => {
+export default defineConfig(({ command, mode }) => {
   const env = loadEnv(mode, __dirname, 'SHEEP_');
+  console.log(env.SHEEP_PROXY_PREFIX);
 
   return {
     base: './',
@@ -46,17 +47,14 @@ export default (command, mode) => {
         overlay: true,
       },
       // 动态代理配置
-      proxy:
-        env.SHEEP_USE_PROXY === 'true'
-          ? {
-              // 代理所有 API 请求
-              '^/.*': {
-                target: env.SHEEP_PROXY_TARGET,
-                changeOrigin: true,
-                secure: false,
-              },
-            }
-          : {},
+      proxy: {
+        // 代理所有 API 请求
+        [env.SHEEP_PROXY_PREFIX]: {
+          target: env.SHEEP_PROXY_TARGET,
+          changeOrigin: true,
+          rewrite: (path) => path.replace(new RegExp(`^${env.SHEEP_PROXY_PREFIX}`), ''),
+        },
+      },
     },
     build: {
       chunkSizeWarningLimit: 2000,
@@ -66,4 +64,4 @@ export default (command, mode) => {
       port: env.SHEEP_PREVIEW_PORT,
     },
   };
-};
+});