Bug 修复记录
- multer 上传时文件名编码错误(latin1 → utf8)
.docx 文件内容编码处理缺失- ZIP 解压时中文文件名乱码
generateSlug 保留了中文字符,导致 URL 无法路由- 安装
transliteration 库,中文标题自动转拼音 slug - 修复存量数据:
总结 → zong-jie、华为开发板申请 → hua-wei-kai-fa-ban-shen-qing 等
.env 中路径为 Windows 格式 C:/Users/Imx/my-docs- 修复为
/www/wwwroot/docx.byesmart.store - 同步清理了
import-policies.js、DEV-REPORT.md、OAUTH-CONFIG.md 中的 Windows 路径 - 删除了错误创建的
admin/C: 目录
/api/sidebar 直接解析 sidebar.ts,children 只有 slug 字符串,前端无法渲染- 改为从数据库动态构建,返回完整
{ text, link } 结构,缓存 5 秒
fix_chinese_slugs.mjs 更新了数据库 file_path,但未同步移动实际文件- 手动将文件移至正确子目录
ct107d-hardware/tc15s/
- 子分类被嵌套在根分类 children 里,视觉上和
group_name 分组无区别 - 修改
sidebar.js,子分类作为独立 section 平级展示,加 isCategory: true 标识 - 重写
SidebarTree.vue,isCategory 节点用带背景色的标题块渲染
expandedKeys 全局共享,不同分类下同名分组 key 冲突- 将 expanded 状态移入
SidebarTree 组件内部,每个实例独立管理
- 修改
group_name 不触发 publishArticle,文件未更新 - 修复:
group_name 变更也触发重新发布
SimpleSearch 依赖 router.getRoutes() 的 meta.title,VuePress 路由无此字段- 改为调用
/api/articles/search 接口,支持标题 + 内容全文搜索 - 添加 MySQL FULLTEXT 索引(ngram parser,支持中文),替换
LIKE 全表扫描 - 搜索结果展示关键词高亮摘要,支持亮/暗主题
assistantMsg.content += 直接修改对象属性,Vue 3 响应式无法检测- 改为
messages.value[msgIndex] = { ...msg, content: newContent } 触发更新 - API URL 配置错误:
cloud.siliconflow.cn(控制台页面)→ api.siliconflow.cn(API 端点) getDocContext SQL 使用 ROW_NUMBER() 窗口函数,MySQL 5.7 不支持,改为关联子查询
- PM2 集群模式启动 4 个进程,充分利用 4 核 CPU
- 数据库连接池 20 → 80
getDocContext 添加 60 秒内存缓存,相同关键词不重复查库
- 图片路径
/api/uploads/images/xxx.png 是后台 API 路径,前台静态站点访问不到 - VuePress/Vite 构建时会把本地路径当模块解析,导致构建失败
- 修复:发布时将图片路径转换为完整域名 URL
https://docx.byesmart.store/uploads/xxx.png - 同时处理 Markdown
![]() 和 HTML <img src=""> 两种格式 - 更新
.env 中 SITE_URL 为正式域名