FGHの识海
首页项目归档照片墙音乐灵境说说杂谈友链关于
封面

从零搭一个博客:一次完整的踩坑记录

写作时间:2026-09-10 13:30:00
# 博客搭建
# Next.js
# Vercel
# 踩坑

缘起

一直想有个自己的地方,能随手写点东西。不想折腾服务器,也不想每年交钱,于是看中了 XinghuisamaBlogs 这个项目——毛玻璃风格、带后台管理、能一键部署到 Vercel。听起来很美好,实际做下来坑不少,记一笔,也给后来的人省点时间。

整体链路

先理清楚这套东西是怎么运转的:

  • GitHub 私有仓库:存源码,FGHBlogs
  • Vercel:监听仓库,代码一推上去就自动重新构建、发布
  • 本地管理台:一个 Python + Next.js 的桌面程序,用来写文章、改配置
  • 写作流程:本地改 → 推 GitHub → Vercel 自动上线

所以核心就是一句话:推代码,自动上线。管理台只是让写文章不用直接改文件。

踩过的坑

一、登录卡在 OAuth

第一次是网络问题。程序要访问 Google 的 oauth2.googleapis.com 换 token,直连超时。后来是账号需要额外验证(Google 对 AI 服务新增的要求)。

这类问题有个通用判断法:看报错里有没有具体的 IP 和错误类型。connectex: A connection attempt failed 是连不上;Further action is required 是账号问题。前者查网络,后者查账号。

二、npm install 装了 21 分钟

这一步最折磨人。日志里显示:

http fetch GET 200 https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz 638346ms

一个 638KB 的包下了 10 分钟,平均速度 1KB/s。

换国内镜像后有改善,但依然慢——瓶颈在网络上,不在源。最后是靠耐心等过去的。

教训:这种环境里装依赖,一定要有心理准备,别以为卡死了。判断死活的办法是看 node_modules 的目录体积有没有在涨。

三、启动脚本闪退

双击启动脚本,黑框一闪就没了。

原因藏在 .bat 文件里:

for /f "tokens=2 delims=." %%i in ('python --version') do set "py_major=%%i"
if %py_major% equ 3 (
    ...
)

Windows 批处理默认不做延迟展开,在同一对括号里刚赋值的变量读出来是空的。变量为空,if 判断就变成语法错误,窗口直接关闭。

绕开方式很简单:直接跑底层脚本,不走那个 .bat。

四、控制台黑屏

启动后窗口一片黑,什么都没有。

原因是这个控制台用了无边框窗口 + 深色背景,靠系统 WebView 渲染。在某些环境下 WebView 出不来,就只剩背景色。

解决思路:既然它本质是个网页应用,那就跳过桌面窗口,直接用浏览器打开。我把启动逻辑改成「只起前后端服务 + 调系统浏览器」,问题消失。

一些心得

1. 会看日志,问题就解决了一半

这次遇到的每个问题,答案都写在日志里。npm 的日志在 %LOCALAPPDATA%/npm-cache/_logs/,脚本的输出重定向到文件就能看。与其反复点按钮,不如去看它到底说了什么。

2. 网络环境决定了工具的选择

同一个操作,在不同网络下成本可能差几十倍。镜像源、超时时间、重试策略,这些不是可选项,是必需品。

3. 出问题先问「这是什么类型的错误」

我习惯把错误分三类:

  • 连不上(超时、拒绝连接)→ 查网络、查代理
  • 被拒绝(401、402、403)→ 查凭据、查余额、查权限
  • 自己崩了(语法错误、找不到模块)→ 查代码、查环境

分类之后,排查方向就清楚了,不会漫无目的地乱试。

4. 改配置要分清「本地」和「线上」

中途我在管理台里填了个本地文件路径当背景图,本地预览一切正常,线上却是坏的——因为 file:///C:/... 这种路径只有我自己的电脑能访问。

凡是给网站用的资源,路径必须是网站自己能访问到的。最稳的做法是把图片放进项目里一起部署。

最后

站搭好了,后面就慢慢写吧。

搭站只是开始,写才是目的。希望这个站能一直开着,也希望这里的文字对得起打开它的人。

avatar

黎3367

初入仙途

RECOMMENDED

Table of Contents