From c6a877ab2854f5ec2f65564fab7ed029ce170696 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E6=B5=B7=E6=B4=8B?= Date: Thu, 4 Jun 2026 10:04:40 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 1 - config/domain.js | 14 +++++++++----- utils/image-url.js | 20 +++++++++++++------- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/.env.example b/.env.example index 3580c38..192bc5b 100644 --- a/.env.example +++ b/.env.example @@ -51,7 +51,6 @@ STOCK_WARN_THRESHOLD=10 # 微信支付 WECHAT_MCH_ID= WECHAT_API_KEY= -# WECHAT_NOTIFY_URL=http://110.42.255.239:3006/api/payment/notify WECHAT_NOTIFY_URL=https://donghy.top/api/payment/notify WECHAT_CERT_PATH= WECHAT_KEY_PATH= diff --git a/config/domain.js b/config/domain.js index 877b6fd..df7722d 100644 --- a/config/domain.js +++ b/config/domain.js @@ -1,14 +1,18 @@ -// 服务端域名配置 - 从环境变量读取,默认临时域名(备案期间) -const BASE_URL = process.env.BASE_URL || 'http://110.42.255.239:3006' +// 服务端域名配置 - 从环境变量读取,默认正式域名 +const BASE_URL = process.env.BASE_URL || 'https://donghy.top' + +// 图片域名(不带端口) +const IMG_DOMAIN = BASE_URL.replace(/:\d+/, '') const DOMAIN_CONFIG = { BASE_URL: BASE_URL, API_PATH: '/api', - IMG_PATH: '/img' + IMG_PATH: '/img', + IMG_DOMAIN: IMG_DOMAIN } -// 完整的图片基础地址 -const IMG_BASE_URL = `${DOMAIN_CONFIG.BASE_URL}${DOMAIN_CONFIG.IMG_PATH}` +// 完整的图片基础地址(不带端口) +const IMG_BASE_URL = `${IMG_DOMAIN}${DOMAIN_CONFIG.IMG_PATH}` module.exports = { DOMAIN_CONFIG, diff --git a/utils/image-url.js b/utils/image-url.js index 9baf7a2..6652cd1 100644 --- a/utils/image-url.js +++ b/utils/image-url.js @@ -29,20 +29,26 @@ function toRelativeUrl(url) { return url; } -// 将相对路径转换为完整URL(用于返回给前端) +// 将相对路径转换为完整URL(用于返回给前端,图片URL不带端口) function toFullUrl(url) { if (!url) return ''; - // 如果已经是完整URL,直接返回 + // 如果已经是完整URL,替换路径并移除端口 if (url.startsWith('http://') || url.startsWith('https://')) { - return url; + // 将 /uploads/goods/ 替换为 /img/,并移除端口 + return url.replace('/uploads/goods/', '/img/').replace(/:\d+/, ''); } - // 如果是相对路径,拼接当前域名 - const baseUrl = DOMAIN_CONFIG.BASE_URL; + // 如果是相对路径,拼接图片域名(不带端口)并替换路径 + const imgDomain = DOMAIN_CONFIG.IMG_DOMAIN || DOMAIN_CONFIG.BASE_URL.replace(/:\d+/, ''); if (url.startsWith('/')) { - return baseUrl + url; + // 将 /uploads/goods/ 替换为 /img/ + return imgDomain + url.replace('/uploads/goods/', '/img/'); } if (url.startsWith('img/')) { - return baseUrl + '/' + url; + return imgDomain + '/' + url; + } + // 处理可能的 uploads/goods/ 开头的路径 + if (url.startsWith('uploads/goods/')) { + return imgDomain + '/img/' + url.replace('uploads/goods/', ''); } return url; }