diff --git a/.gitea/workflows/deploy-admin.yml b/.gitea/workflows/deploy-admin.yml index 115a55d..bf7d2f0 100644 --- a/.gitea/workflows/deploy-admin.yml +++ b/.gitea/workflows/deploy-admin.yml @@ -103,51 +103,18 @@ jobs: VITE_UPLOAD_URL: https://api.photography.iriver.top/upload run: bun run build - - name: 📊 压缩构建产物 - working-directory: ./admin - run: | - tar -czf admin-dist.tar.gz -C dist . - echo "压缩完成: $(ls -lh admin-dist.tar.gz)" - - - name: 🚀 部署到服务器 - run: | - # 设置 SSH 环境 - export SSHPASS=${{ secrets.ALIYUN_PWD }} - - # 设置变量 - ADMIN_DIR="/home/gitea/www/photography-admin" - - echo "🚀 开始部署管理后台..." - - # 部署到服务器 - sshpass -e ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 ${{ secrets.ALIYUN_USER_NAME }}@${{ secrets.ALIYUN_IP }} " - set -e - echo '🚀 开始部署管理后台...' - - # 确保目录存在 - mkdir -p $ADMIN_DIR - - # 快速部署:清空旧文件 - rm -rf $ADMIN_DIR/* - - # 设置权限 - chown -R gitea:gitea $ADMIN_DIR - chmod -R 755 $ADMIN_DIR - - echo '✅ 管理后台部署完成!' - " - - - name: 📤 上传构建产物到服务器 + - name: 📤 上传文件到服务器 uses: appleboy/scp-action@v0.1.6 with: host: ${{ secrets.ALIYUN_IP }} username: ${{ secrets.ALIYUN_USER_NAME }} password: ${{ secrets.ALIYUN_PWD }} port: 22 - source: "admin/admin-dist.tar.gz" - target: "/tmp/" + source: "admin/dist/" + target: "/tmp/admin-build" + rm: true - - name: 🚀 解压并部署文件 + - name: 🔄 部署文件到生产目录 uses: appleboy/ssh-action@v1.0.0 with: host: ${{ secrets.ALIYUN_IP }} @@ -155,29 +122,29 @@ jobs: password: ${{ secrets.ALIYUN_PWD }} port: 22 script: | - echo "🚀 开始部署管理后台..." + echo "🔄 部署管理后台到生产目录..." ADMIN_DIR="/home/gitea/www/photography-admin" - # 确保目录存在 + # 创建目标目录 mkdir -p $ADMIN_DIR - # 解压文件 - echo "📦 正在解压文件..." - mkdir -p /tmp/admin-deploy - tar -xzf /tmp/admin-dist.tar.gz -C /tmp/admin-deploy/ - - # 清空旧文件并部署新文件 - echo "🚀 正在部署文件..." + # 清空旧文件 rm -rf $ADMIN_DIR/* - cp -r /tmp/admin-deploy/* $ADMIN_DIR/ + + # 移动新文件到生产目录 + cp -r /tmp/admin-build/admin/dist/* $ADMIN_DIR/ || exit 1 + + # 清理临时文件 + rm -rf /tmp/admin-build # 设置权限 chown -R gitea:gitea $ADMIN_DIR chmod -R 755 $ADMIN_DIR - # 清理临时文件 - rm -rf /tmp/admin-deploy /tmp/admin-dist.tar.gz + # 验证部署结果 + echo "📋 验证部署文件..." + ls -la $ADMIN_DIR/ | head -10 echo "✅ 管理后台部署完成!" diff --git a/frontend/.env.local b/frontend/.env.local index 4502cf0..fb0983d 100644 --- a/frontend/.env.local +++ b/frontend/.env.local @@ -1,11 +1,5 @@ -# API配置 - 连接到后端 go-zero API +# API配置 - 根据环境自动选择 NEXT_PUBLIC_API_URL=http://localhost:8080/api/v1 -# Mock API (仅开发时使用) -NEXT_PUBLIC_MOCK_API_URL=http://localhost:3001/api - # 开发环境配置 -NODE_ENV=development - -# 启用真实API (临时改为false以解决SSR问题) -NEXT_PUBLIC_USE_REAL_API=false \ No newline at end of file +NODE_ENV=development \ No newline at end of file diff --git a/frontend/lib/api.ts b/frontend/lib/api.ts index 0bab446..966ba3f 100644 --- a/frontend/lib/api.ts +++ b/frontend/lib/api.ts @@ -2,9 +2,7 @@ import axios from 'axios' // 创建axios实例 const api = axios.create({ - baseURL: process.env.NEXT_PUBLIC_USE_REAL_API === 'true' - ? (process.env.NEXT_PUBLIC_API_URL || 'http://localhost:8080/api/v1') - : (process.env.NEXT_PUBLIC_MOCK_API_URL || 'http://localhost:3001/api'), + baseURL: process.env.NEXT_PUBLIC_API_URL || 'http://localhost:3001/api', timeout: 10000, headers: { 'Content-Type': 'application/json', @@ -33,15 +31,11 @@ api.interceptors.request.use( api.interceptors.response.use( (response) => { // 处理后端API的响应格式: { code: number, message: string, data: any } - if (process.env.NEXT_PUBLIC_USE_REAL_API === 'true') { - const { code, message, data } = response.data - if (code !== 200) { - return Promise.reject(new Error(message || '请求失败')) - } - return data // 返回data部分 + const { code, message, data } = response.data + if (code !== 200) { + return Promise.reject(new Error(message || '请求失败')) } - // Mock API直接返回数据 - return response.data + return data // 返回data部分 }, (error) => { if (error.response?.status === 401) {