#!/bin/bash # OA模块重新构建和部署脚本 # 用于解决资源文件404错误 set -e echo "==========================================" echo "OA模块重新构建和部署脚本" echo "==========================================" # 获取项目根目录 PROJECT_ROOT="/Users/weizongsong/www/cz_hjjc" OA_DIR="$PROJECT_ROOT/cz-hjjc-oa" OUTPUT_DIR="$PROJECT_ROOT/backend/public/oa" # 进入OA项目目录 cd "$OA_DIR" echo "" echo "步骤1: 清理旧的构建文件..." if [ -d "dist" ]; then rm -rf dist echo "✓ 已清理 dist 目录" else echo "✓ dist 目录不存在,跳过清理" fi echo "" echo "步骤2: 设置环境变量并构建..." export VUE_APP_MODULE_NAME=oa export VUE_APP_BASE_API=/api echo "环境变量:" echo " VUE_APP_MODULE_NAME=$VUE_APP_MODULE_NAME" echo " VUE_APP_BASE_API=$VUE_APP_BASE_API" echo "" echo "开始构建(这可能需要几分钟)..." npm run build:prod if [ ! -d "dist" ]; then echo "❌ 构建失败:dist 目录不存在" exit 1 fi echo "✓ 构建完成" echo "" echo "步骤3: 检查构建输出..." echo "CSS文件:" ls -1 dist/static/css/chunk-libs.* 2>/dev/null || echo " ⚠️ 未找到 chunk-libs.css" echo "JS文件:" ls -1 dist/static/js/chunk-libs.* 2>/dev/null || echo " ⚠️ 未找到 chunk-libs.js" ls -1 dist/static/js/app.* 2>/dev/null || echo " ⚠️ 未找到 app.js" echo "" echo "步骤4: 备份旧文件(如果存在)..." if [ -d "$OUTPUT_DIR" ]; then BACKUP_DIR="${OUTPUT_DIR}.backup.$(date +%Y%m%d_%H%M%S)" echo " 备份到: $BACKUP_DIR" cp -r "$OUTPUT_DIR" "$BACKUP_DIR" echo "✓ 备份完成" else echo "✓ 输出目录不存在,无需备份" fi echo "" echo "步骤5: 部署到服务器..." mkdir -p "$OUTPUT_DIR" cp -r dist/* "$OUTPUT_DIR" echo "✓ 部署完成到: $OUTPUT_DIR" echo "" echo "步骤6: 验证部署..." if [ -f "$OUTPUT_DIR/index.html" ]; then echo "✓ index.html 存在" # 检查HTML中引用的文件 echo "" echo "HTML中引用的资源文件:" grep -oE 'chunk-libs\.[^"]*' "$OUTPUT_DIR/index.html" | head -2 | while read file; do if [ -f "$OUTPUT_DIR/static/css/$file" ] || [ -f "$OUTPUT_DIR/static/js/$file" ]; then echo " ✓ $file 存在" else echo " ❌ $file 不存在" fi done else echo "❌ index.html 不存在" exit 1 fi echo "" echo "==========================================" echo "✅ 构建和部署完成!" echo "==========================================" echo "" echo "下一步操作:" echo "1. 清除浏览器缓存(Ctrl+Shift+Delete 或 Cmd+Shift+Delete)" echo "2. 强制刷新页面(Ctrl+F5 或 Cmd+Shift+R)" echo "3. 访问: http://192.167.20.118:8080/oa/" echo "" echo "如果问题仍然存在,请检查:" echo "- Web服务器(Nginx/Apache)的缓存配置" echo "- 服务器上的文件权限" echo "- 服务器日志中的错误信息" echo ""