Skip to content

问题修复记录

修复日期

2025-11-05

修复的问题

1. 侧边栏图标和文字不在同一行

问题描述: 侧边栏导航菜单中的图标和文字没有对齐,显示效果不佳。

原因: Tailwind CSS CDN 版本不支持 @apply 指令,导致 CSS 样式未生效。

解决方案:@apply 指令改为标准 CSS 属性: css .nav-item { display: flex; align-items: center; gap: 0.75rem; /* ... */ }

修改文件: - web_admin/templates/base.html


2. 文章总数统计不准确

问题描述: 仪表板显示的文章总数为 629 篇,但实际只有 550 篇文章。

原因: Hugo 博客中有两种文章结构: 1. 直接文件: content/post/article-name.md (419 篇) 2. 目录结构: content/post/article-name.md/index.md (131 篇)

rglob("*.md") 会同时匹配: - .md 文件 ✓ - .md/index.md 文件 ✓ - .md 目录本身 ✗ (这是问题所在!)

因为 .md 目录也匹配 *.md 模式,导致统计时多计算了 79 个目录。

解决方案:get_blog_posts() 函数中添加目录检查: python for file_path in post_dir.rglob("*.md"): # 跳过目录 if file_path.is_dir(): continue # 处理文件...

修改文件: - tasks.py (line 613-615)

测试结果: ✓ 修复前: 629 篇(包含目录) ✓ 修复后: 550 篇(正确) ✓ 实际文件: 550 个 .md 文件


验证步骤

1. 验证侧边栏显示

  1. 启动 Web 应用: cd web_admin && ./run.sh
  2. 访问 http://127.0.0.1:5000
  3. 检查左侧导航栏的图标和文字是否对齐

2. 验证文章统计

  1. 查看首页仪表板的"总文章数"
  2. 应该显示 550 篇
  3. 进入文章管理页面,验证文章列表数量

3. 命令行验证

```bash

统计实际文件数

find content/post -name "*.md" -type f | wc -l

测试 Python 函数

uv run python -c " from tasks import get_blog_posts posts = get_blog_posts('content') print(f'文章数: {len(posts)}') " ```


影响范围

受影响的功能

  1. ✅ 侧边栏导航显示
  2. ✅ 仪表板文章统计
  3. ✅ 文章列表总数显示
  4. ✅ 分页功能的正确性

不受影响的功能

  • Hugo 服务器控制
  • 文章编辑器
  • 搜索和筛选功能

测试建议

建议测试以下场景: 1. ✅ 查看仪表板统计数据 2. ✅ 浏览文章列表 3. ✅ 使用搜索功能 4. ✅ 按分类/标签筛选 5. ✅ 分页浏览


后续优化建议

  1. 性能优化: 当文章数量很大时,每次加载所有文章可能较慢,考虑:
  2. 添加缓存机制
  3. 使用数据库索引
  4. 分批加载

  5. 目录结构标准化: 建议统一文章目录结构: content/post/2025-01-01-article-name/ └── index.md 而不是混用 .md 目录名。

  6. 错误处理: 增强对异常文件结构的处理和提示。


总结

两个问题都已修复并测试通过。Web 应用现在可以正确显示导航菜单和统计信息。