dujian 1 день назад
Родитель
Сommit
42907e3184
5 измененных файлов с 15 добавлено и 17 удалено
  1. 6 6
      .env.production
  2. 2 2
      .env.test
  3. 1 1
      src/api/modules/aiImageUpload.ts
  4. 5 7
      src/utils/config.ts
  5. 1 1
      src/views/home/components/go-flow.vue

+ 6 - 6
.env.production

@@ -44,15 +44,15 @@ VITE_COVER_AUDIT_BASE = http://183.252.196.135:9500
 # 可不配置 VITE_WS_BASE,避免写死域名与实际上线域名不一致。仅 HTTP/本地联调时再配 ws/wss。
 # VITE_WS_BASE = wss://test.ailien.shop/alienStore/socket
 
-# 上传请求:不配则走同源 /ai-upload(Nginx 反代示例
+# 上传请求:不配则走同源 /ai-upload/upload/simple(Nginx 反代至 uat 上传服务,避免 prod 直连 uat 产生 CORS
 # location /ai-upload/ {
-#   proxy_pass https://upload.ailien.shop:8443/;
-#   proxy_set_header Host upload.ailien.shop;
+#   proxy_pass https://uat.ailien.shop/;
+#   proxy_set_header Host uat.ailien.shop;
 #   proxy_ssl_server_name on;
 # }
-# 仅在上传服务已配置完整 CORS 时才直连:
-# VITE_AI_UPLOAD_BASE = https://upload.ailien.shop:8443
-# VITE_AI_FILES_PUBLIC_BASE = https://upload.ailien.shop:8443/files
+# 仅在上传服务已配置完整 CORS 时才直连 uat 域名
+# VITE_AI_UPLOAD_BASE = https://uat.ailien.shop
+# VITE_AI_FILES_PUBLIC_BASE = https://uat.ailien.shop/files
 
 # 接口加密配置
 # 加密功能总开关

+ 2 - 2
.env.test

@@ -41,8 +41,8 @@ VITE_API_URL_PLATFORM = /alienStorePlatform
 # 测试环境跨域代理,支持配置多个
 VITE_PROXY = [["/api","http://120.26.186.130:8000"],["/ai-upload","https://uat.ailien.shop"]] 
 
-# 简单上传与 Tus:与 UAT 上传服务一致(不配则默认同源 /ai-upload,测试部署在非 uat 域名时常 404
-VITE_AI_UPLOAD_BASE = https://uat.ailien.shop
+# 简单上传与 Tus:走同源 /ai-upload,由 Nginx 反代至 uat(勿直连 uat 域名,跨域会 CORS
+# VITE_AI_UPLOAD_BASE = https://uat.ailien.shop
 
 # 接口加密配置
 # 加密功能总开关

+ 1 - 1
src/api/modules/aiImageUpload.ts

@@ -123,7 +123,7 @@ function buildDevSimpleUploadRequestUrl(): string {
 
 /**
  * 官方相册等:multipart 直传(替代 Tus `POST .../upload`)
- * POST `https://uat.ailien.shop/upload/simple`(与全局 simple 上传一致),表单字段 `file`
+ * POST 同源 simple 上传(与全局 upload.js 一致,Nginx 反代至 uat),表单字段 `file`
  */
 export async function uploadFileViaDevSimpleEndpoint(file: File): Promise<{ fileUrl: string; coverUrl?: string }> {
   return withSimpleUploadOverlay(async signal => {

+ 5 - 7
src/utils/config.ts

@@ -1,6 +1,6 @@
 /**
  * Tus / simple 上传服务「请求」基址(与 uni 端对齐)
- * - 未配置 VITE_AI_UPLOAD_BASE 时默认 **同源相对路径 `/ai-upload`**,由 Vite 开发代理或 Nginx 反代到实际上传域,避免浏览器直连 upload 域产生跨域。
+ * - 未配置 VITE_AI_UPLOAD_BASE 时默认 **同源相对路径 `/ai-upload`**,由 Vite 开发代理或 Nginx 反代到 https://uat.ailien.shop,避免浏览器直连上传域产生跨域。
  * - 若必须浏览器直连上传 HTTPS 域名,请在 .env 设置 VITE_AI_UPLOAD_BASE,并确保该域已正确配置 CORS(含 Authorization、OPTIONS)。
  */
 const trimSlash = (s: string) => s.replace(/\/$/, "");
@@ -8,13 +8,11 @@ const trimSlash = (s: string) => s.replace(/\/$/, "");
 export const BASE_AI_URL = trimSlash(String(import.meta.env.VITE_AI_UPLOAD_BASE || "").trim() || "/ai-upload");
 
 /**
- * POST `/upload/simple`(multipart)固定走 UAT 上传服务,与当前页面域名、VITE_AI_UPLOAD_BASE 无关。
- * 避免生产等同源 `/ai-upload/upload/simple` 反代缺失导致 404,或与实际上传域不一致引发跨域。
+ * multipart 简单上传:浏览器走同源 `${BASE_AI_URL}/upload/simple`(默认 `/ai-upload/upload/simple`),
+ * 经 Vite/Nginx 反代后实际上传至 https://uat.ailien.shop/upload/simple。
+ * 勿在 prod/test 等环境打包为直链 uat 域名,否则会 CORS。
  */
-export const SIMPLE_UPLOAD_REQUEST_BASE = trimSlash("https://uat.ailien.shop");
-
-/** 全站 multipart 简单上传完整 URL(商家入驻证件、价目表等统一使用) */
-export const SIMPLE_UPLOAD_URL = `${SIMPLE_UPLOAD_REQUEST_BASE}/upload/simple`;
+export const SIMPLE_UPLOAD_URL = `${BASE_AI_URL}/upload/simple`;
 
 /** 上传完成后对外可访问的文件 URL:`${AI_UPLOAD_FILES_PUBLIC_BASE}/${uploadId}` */
 export const AI_UPLOAD_FILES_PUBLIC_BASE = trimSlash(

+ 1 - 1
src/views/home/components/go-flow.vue

@@ -886,7 +886,7 @@ const selectAddress = async () => {
   latShow.value = true;
 };
 
-/** 商家入驻证件/资质上传:固定 POST https://uat.ailien.shop/upload/simple */
+/** 商家入驻证件/资质上传:同源 /ai-upload/upload/simple,Nginx 反代至 uat 上传服务 */
 const handleHttpUpload = async (options: UploadRequestOptions) => {
   const raw = options.file;
   const file = raw instanceof File ? raw : (raw as UploadUserFile)?.raw;