Hexo 排坑记:删除所有文章后首页无法访问(Cannot GET) 背景最近在使用 Hexo Butterfly 主题搭建个人博客时遇到一个奇怪的问题我把source/_posts下的所有文章都删掉后重新生成并启动本地服务器访问http://localhost:4000竟然直接显示Cannot GET /首页完全打不开。原因分析Hexo 作为静态站点生成器理论上即使没有任何文章也应该生成一个“暂无文章”的首页。但为什么我的博客却直接 404 了呢经过排查和查阅资料发现问题出在Butterfly 主题对空文章列表的处理上Butterfly 主题的首页布局index.ejs中包含了获取文章列表并渲染的代码。当_posts文件夹为空时page.posts返回的是一个空数组某些主题或插件在遍历空数组时可能触发了异常但被静默捕获没有输出到终端。这个异常导致 Hexo 认为首页不需要生成于是跳过了index.html的创建。本质上这不是 Hexo 的强制要求而是 Butterfly 主题或某些插件没有对空文章列表做兼容处理。解决方案方案一保留至少一篇文章在source/_posts目录下新建一篇占位文章例如welcome.md---title:欢迎来到我的博客date:2026-05-23---这里会陆续更新技术文章敬请期待之后博客就能正常访问了。这个方法成本最低适合大多数用户。方案二修改主题模板如果你希望即使没有任何文章也能正常显示首页可以自行修改 Butterfly 主题的index.ejs文件路径themes/butterfly/layout/index.ejs。找到文章列表渲染的代码块添加空值判断% if (page.posts page.posts.length) { % // 正常渲染文章列表 div classrecent-posts % page.posts.each(function(post){ % // 文章卡片代码 % }) % /div % } else { % div classno-articles 暂无文章敬请期待。 /div % } %修改后重新hexo clean hexo generate即可。总结现象原因推荐解决删除所有文章后首页 404且public/index.html缺失主题或插件无法正确处理空文章列表渲染被跳过保留至少一篇占位文章这个坑我踩了一下午记录在此希望能帮到同样使用 Hexo Butterfly 的朋友。