问题修复记录¶
修复日期¶
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. 验证侧边栏显示¶
- 启动 Web 应用:
cd web_admin && ./run.sh - 访问 http://127.0.0.1:5000
- 检查左侧导航栏的图标和文字是否对齐
2. 验证文章统计¶
- 查看首页仪表板的"总文章数"
- 应该显示 550 篇
- 进入文章管理页面,验证文章列表数量
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)}') " ```
影响范围¶
受影响的功能¶
- ✅ 侧边栏导航显示
- ✅ 仪表板文章统计
- ✅ 文章列表总数显示
- ✅ 分页功能的正确性
不受影响的功能¶
- Hugo 服务器控制
- 文章编辑器
- 搜索和筛选功能
测试建议¶
建议测试以下场景: 1. ✅ 查看仪表板统计数据 2. ✅ 浏览文章列表 3. ✅ 使用搜索功能 4. ✅ 按分类/标签筛选 5. ✅ 分页浏览
后续优化建议¶
- 性能优化: 当文章数量很大时,每次加载所有文章可能较慢,考虑:
- 添加缓存机制
- 使用数据库索引
-
分批加载
-
目录结构标准化: 建议统一文章目录结构:
content/post/2025-01-01-article-name/ └── index.md而不是混用.md目录名。 -
错误处理: 增强对异常文件结构的处理和提示。
总结¶
两个问题都已修复并测试通过。Web 应用现在可以正确显示导航菜单和统计信息。