Prmbr/debug-copy-feature.md
2025-08-03 11:48:58 +08:00

2.8 KiB

调试"复制到工作室"功能

🔧 已修复的问题

1. 头像显示问题

  • 修复: 头像尺寸从 h-5 w-5 (20px) 增加到 h-6 w-6 (24px)
  • 修复: 添加了 min-w-0 到父容器防止压缩
  • 修复: 移除了多余的背景样式冲突

2. API路由修复

  • 修复: 添加了 permissions 字段处理
  • 修复: 改进了错误处理和调试信息
  • 修复: 添加了详细的控制台日志

🧪 调试步骤

如果复制功能仍然不工作,请按以下步骤调试:

步骤1: 检查浏览器控制台

  1. 打开浏览器开发者工具 (F12)
  2. 转到 Console 标签
  3. 点击"复制到工作室"按钮
  4. 查看是否有以下日志:
    Duplicating prompt with data: {name: "...", content: "...", ...}
    

步骤2: 检查网络请求

  1. 在开发者工具中转到 Network 标签
  2. 点击"复制到工作室"按钮
  3. 查看是否有 POST 请求到 /api/prompts
  4. 检查请求状态码:
    • 200: 成功
    • 400: 请求数据错误
    • 401: 用户认证问题
    • 500: 服务器错误

步骤3: 检查错误详情

如果看到红色错误通知,请:

  1. 检查控制台中的错误详情
  2. 查看网络请求的响应内容
  3. 确认用户已登录且有有效的 user.id

🔍 常见问题和解决方案

问题1: "User ID is required" 错误

原因: useAuth hook 没有正确获取用户信息 解决:

  • 确保用户已登录
  • 检查 user.id 是否存在
  • 刷新页面重新获取用户信息

问题2: 网络错误或超时

原因: API路由响应慢或数据库连接问题 解决:

  • 检查数据库连接状态
  • 确保所有环境变量正确设置
  • 查看服务器端日志

问题3: "Failed to duplicate prompt"

原因: 数据验证失败或数据库约束问题 解决:

  • 检查 prompt 数据是否完整
  • 确保 tags 数组格式正确
  • 检查数据库是否有相关表和权限

📝 当前代码状态

请求数据格式

{
  name: "Original Name (Copy)",
  content: "prompt content",
  description: "prompt description", 
  permissions: "private",
  userId: "user-id-string",
  tags: ["tag1", "tag2"]
}

API响应处理

  • 成功: 绿色通知 2秒
  • API错误: 红色通知显示具体错误 3秒
  • 网络错误: 红色通知显示网络错误 3秒

🚀 测试建议

  1. 先在Studio页面手动创建一个prompt 确认基本功能正常
  2. 检查广场是否显示公开prompt 确认数据可访问
  3. 确保用户已登录 查看右上角用户信息
  4. 尝试复制不同类型的prompt 有标签和无标签的

如果按照以上步骤仍然有问题,请提供:

  • 浏览器控制台的错误信息
  • 网络请求的详细响应
  • 具体的错误通知内容