<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>拾柒</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <id>https://blog.g8.ccwu.cc/</id>
  <link href="https://blog.g8.ccwu.cc/" rel="alternate"/>
  <link href="https://blog.g8.ccwu.cc/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, 拾柒</rights>
  <subtitle>记录技术与生活</subtitle>
  <title>拾柒不懂代码</title>
  <updated>2026-10-10T22:00:00.000Z</updated>
  <entry>
    <author>
      <name>拾柒</name>
    </author>
    <category term="建站教程" scheme="https://blog.g8.ccwu.cc/categories/%E5%BB%BA%E7%AB%99%E6%95%99%E7%A8%8B/"/>
    <category term="教程" scheme="https://blog.g8.ccwu.cc/tags/%E6%95%99%E7%A8%8B/"/>
    <category term="Hexo" scheme="https://blog.g8.ccwu.cc/tags/Hexo/"/>
    <category term="建站" scheme="https://blog.g8.ccwu.cc/tags/%E5%BB%BA%E7%AB%99/"/>
    <category term="Cloudflare Pages" scheme="https://blog.g8.ccwu.cc/tags/Cloudflare-Pages/"/>
    <content>
      <![CDATA[<p>先交代身份：我是拾柒，本站博主，<strong>一行代码不会写</strong>。</p><p>你现在看到的这个博客——主题、部署链路、配图、包括这篇教程本身——全部由我和 AI 协作完成。它已经真实上线，所以这篇教程里的每条命令都不是”理论上可行”，而是<strong>就在这个网站上跑通过的</strong>。</p><p>这是一篇保姆级图文教程：从一台什么都没装的 Windows 电脑开始，到博客自动部署上线。每一步都给命令、讲人话、标出我踩过的坑。</p><p>适合谁：想搭 Hexo 博客、完全不想碰服务器、也不写代码的人。你只需要会三件事——装软件（下一步下一步那种）、复制粘贴、以及出错的时候不慌。</p><h2 id="〇、学完你会得到什么"><a href="#〇、学完你会得到什么" class="headerlink" title="〇、学完你会得到什么"></a>〇、学完你会得到什么</h2><p><img src="/img/deploy-tutorial/01-pipeline.svg" alt="部署全链路：写完 push，剩下的全自动"></p><p>一句话总结：<strong>你只负责写文章，其余全自动</strong>——本地写完 push，云端构建上线，全程不碰服务器。</p><p>技术栈一览（全部免费）：</p><table><thead><tr><th>角色</th><th>选型</th><th>为什么</th></tr></thead><tbody><tr><td>博客引擎</td><td>Hexo 7.3.0</td><td>静态博客，中文资料最多，出问题搜得到答案</td></tr><tr><td>主题</td><td>anzhiyu 1.7.0</td><td>好看，文档全，本站就是它</td></tr><tr><td>代码托管</td><td>GitHub 私有仓库</td><td>免费，保存全部历史版本</td></tr><tr><td>部署</td><td>Cloudflare Pages</td><td>免费，push 即部署，全球 CDN 加速</td></tr></tbody></table><h2 id="一、准备工作：三样软件，两个账号"><a href="#一、准备工作：三样软件，两个账号" class="headerlink" title="一、准备工作：三样软件，两个账号"></a>一、准备工作：三样软件，两个账号</h2><h3 id="1-装-Node-js-20（Hexo-的运行环境）"><a href="#1-装-Node-js-20（Hexo-的运行环境）" class="headerlink" title="1. 装 Node.js 20（Hexo 的运行环境）"></a>1. 装 Node.js 20（Hexo 的运行环境）</h3><p>去官网 <a href="https://nodejs.org/">https://nodejs.org</a> 下载 20 LTS 版本，双击安装，一路下一步。</p><p>装完验证。打开 PowerShell（开始菜单搜 “PowerShell”），输入：</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">node <span class="literal">-v</span></span><br><span class="line"><span class="comment"># 应该显示类似 v20.x.x</span></span><br></pre></td></tr></table></figure><h3 id="2-装-Git（版本管理，推送全靠它）"><a href="#2-装-Git（版本管理，推送全靠它）" class="headerlink" title="2. 装 Git（版本管理，推送全靠它）"></a>2. 装 Git（版本管理，推送全靠它）</h3><p>官网 <a href="https://git-scm.com/">https://git-scm.com</a> 下载，一路下一步。验证：</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">git <span class="literal">--version</span></span><br><span class="line"><span class="comment"># 应该显示类似 git version 2.x</span></span><br></pre></td></tr></table></figure><h3 id="3-给-npm-换国内镜像（国内用户强烈建议）"><a href="#3-给-npm-换国内镜像（国内用户强烈建议）" class="headerlink" title="3. 给 npm 换国内镜像（国内用户强烈建议）"></a>3. 给 npm 换国内镜像（国内用户强烈建议）</h3><p>npm 是 Node 的包管理器，默认源在国外，不换的话装依赖能卡半天：</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm config <span class="built_in">set</span> registry https://repo.huaweicloud.com/repository/npm/</span><br></pre></td></tr></table></figure><h3 id="4-安装-Hexo"><a href="#4-安装-Hexo" class="headerlink" title="4. 安装 Hexo"></a>4. 安装 Hexo</h3><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm install <span class="literal">-g</span> hexo<span class="literal">-cli</span></span><br></pre></td></tr></table></figure><h3 id="5-注册两个免费账号"><a href="#5-注册两个免费账号" class="headerlink" title="5. 注册两个免费账号"></a>5. 注册两个免费账号</h3><ul><li><strong>GitHub</strong>（<a href="https://github.com/">https://github.com</a>）——代码住这里</li><li><strong>Cloudflare</strong>（<a href="https://dash.cloudflare.com/">https://dash.cloudflare.com</a>）——网站住这里</li></ul><blockquote><p>踩坑旁白：装软件这步没有任何技巧，全靠”下一步”。我第一次敲 <code>node -v</code> 看到版本号出现的时候，心情跟考过驾照差不多。</p></blockquote><h2 id="二、把博客在本地跑起来"><a href="#二、把博客在本地跑起来" class="headerlink" title="二、把博客在本地跑起来"></a>二、把博客在本地跑起来</h2><h3 id="1-初始化"><a href="#1-初始化" class="headerlink" title="1. 初始化"></a>1. 初始化</h3><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 找个喜欢的位置，比如 D:\</span></span><br><span class="line"><span class="built_in">cd</span> D:\</span><br><span class="line">hexo init blog</span><br><span class="line"><span class="built_in">cd</span> blog</span><br><span class="line">npm install</span><br></pre></td></tr></table></figure><p><code>hexo init</code> 搭骨架，<code>npm install</code> 装依赖。两步都别慌，屏幕滚一堆字是正常的。</p><h3 id="2-装-anzhiyu-主题"><a href="#2-装-anzhiyu-主题" class="headerlink" title="2. 装 anzhiyu 主题"></a>2. 装 anzhiyu 主题</h3><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm install hexo<span class="literal">-theme-anzhiyu</span></span><br></pre></td></tr></table></figure><p>打开根目录的 <code>_config.yml</code>，找到 <code>theme:</code> 一行，改成：</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">theme:</span> <span class="string">anzhiyu</span></span><br></pre></td></tr></table></figure><h3 id="3-装配套插件（本站实际在用的清单）"><a href="#3-装配套插件（本站实际在用的清单）" class="headerlink" title="3. 装配套插件（本站实际在用的清单）"></a>3. 装配套插件（本站实际在用的清单）</h3><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npm install hexo<span class="literal">-abbrlink</span> hexo<span class="literal">-generator-searchdb</span> hexo<span class="literal">-generator-feed</span> hexo<span class="literal">-generator-sitemap</span> hexo<span class="literal">-wordcount</span></span><br></pre></td></tr></table></figure><p>各自负责：</p><ul><li><code>hexo-abbrlink</code>：每篇文章一个永久短链接，换主机不失效</li><li><code>hexo-generator-searchdb</code>：站内搜索</li><li><code>hexo-generator-feed</code>：RSS 订阅</li><li><code>hexo-generator-sitemap</code>：站点地图，方便搜索引擎收录</li><li><code>hexo-wordcount</code>：字数统计</li></ul><h3 id="4-本地预览"><a href="#4-本地预览" class="headerlink" title="4. 本地预览"></a>4. 本地预览</h3><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npx hexo server</span><br></pre></td></tr></table></figure><p>浏览器打开 <a href="http://localhost:4000/">http://localhost:4000</a>，看到你自己的博客了。</p><p><img src="/img/deploy-tutorial/02-structure.svg" alt="博客根目录速览"></p><p>目录里最需要认识的两个地方：<code>source/_posts/</code>（以后文章全住这）和 <code>_config.yml</code>（全站配置）。</p><h3 id="5-新建一篇文章试试"><a href="#5-新建一篇文章试试" class="headerlink" title="5. 新建一篇文章试试"></a>5. 新建一篇文章试试</h3><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">npx hexo new post <span class="string">&quot;我的第一篇文章&quot;</span></span><br></pre></td></tr></table></figure><p>Hexo 会在 <code>source/_posts/</code> 生成同名 <code>.md</code> 文件。用任意编辑器（VSCode、Typora 都行）打开，front matter 下面随便写两句，保存，刷新浏览器就能看到。</p><blockquote><p>踩坑旁白：我第一次打开 localhost:4000，对着页面发了三分钟呆，然后截图发了好几个群。冷静下来才想起：博客一篇文章都还没有——别急，先部署，文章慢慢写。</p></blockquote><h2 id="三、Git-仓库：给博客上”户口”"><a href="#三、Git-仓库：给博客上”户口”" class="headerlink" title="三、Git 仓库：给博客上”户口”"></a>三、Git 仓库：给博客上”户口”</h2><p>Cloudflare Pages 只认 GitHub 仓库，所以本地博客得先”上户口”。</p><h3 id="1-在-GitHub-建一个仓库"><a href="#1-在-GitHub-建一个仓库" class="headerlink" title="1. 在 GitHub 建一个仓库"></a>1. 在 GitHub 建一个仓库</h3><p>登录 GitHub → 右上角 <strong>+</strong> → <strong>New repository</strong>：</p><ul><li>名字随意（我用的是 <code>xxx.github.io</code> 格式）</li><li>选 <strong>Private</strong>（私有）——踩坑过程不想被围观，就选私有</li><li>其他都不勾，Create</li></ul><h3 id="2-先说一个大坑：仓库套仓库"><a href="#2-先说一个大坑：仓库套仓库" class="headerlink" title="2. 先说一个大坑：仓库套仓库"></a>2. 先说一个大坑：仓库套仓库</h3><p>我最初把 blog 放在另一个大仓库的子目录里，结果 CFP 构建永远失败——<strong>部署平台只认仓库根目录</strong>，它在仓库根找 <code>package.json</code>，当然找不到。</p><p>记住：<strong>blog 文件夹自己就是一个仓库</strong>。如果你已经套进去了，解法在第六节坑一。</p><h3 id="3-本地建仓库并推送"><a href="#3-本地建仓库并推送" class="headerlink" title="3. 本地建仓库并推送"></a>3. 本地建仓库并推送</h3><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">cd</span> D:\blog</span><br><span class="line">git init</span><br><span class="line">git add .</span><br><span class="line">git commit <span class="literal">-m</span> <span class="string">&quot;init: 博客上线第一步&quot;</span></span><br><span class="line">git branch <span class="literal">-M</span> main</span><br><span class="line">git remote add origin git@github.com:你的用户名/你的仓库名.git</span><br><span class="line">git push <span class="literal">-u</span> origin main</span><br></pre></td></tr></table></figure><p>逐行翻译：</p><ul><li><code>git init</code>：把当前文件夹变成一个仓库</li><li><code>git add .</code> + <code>git commit</code>：给所有文件拍一张快照，附言”init”</li><li><code>git branch -M main</code>：分支命名为 main（GitHub 的习惯）</li><li><code>git remote add</code>：本地仓库和 GitHub 仓库”配对”</li><li><code>git push</code>：把快照推上去</li></ul><p>推不动？连接超时？别怀疑人生，是国内网络在拦你，看下一条。</p><h3 id="4-国内网络解法：SSH-走-443"><a href="#4-国内网络解法：SSH-走-443" class="headerlink" title="4. 国内网络解法：SSH 走 443"></a>4. 国内网络解法：SSH 走 443</h3><p><img src="/img/deploy-tutorial/03-ssh-443.svg" alt="国内推送 GitHub：为什么走 SSH 443"></p><p><code>github.com</code> 网页能打开，但 git 用的接口经常连不通。解法：让 git 改走 SSH 协议的 443 端口——同样是 443，换协议就稳了。</p><p><strong>第一步</strong>：还没有 SSH 密钥就先生成（有就跳过）：</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">ssh<span class="literal">-keygen</span> <span class="literal">-t</span> ed25519 <span class="literal">-C</span> <span class="string">&quot;你的邮箱&quot;</span></span><br><span class="line"><span class="comment"># 一路回车</span></span><br></pre></td></tr></table></figure><p>把 <code>C:\Users\你的用户名\.ssh\id_ed25519.pub</code> 里的内容复制，粘贴到 GitHub → Settings → SSH and GPG keys → New SSH key。</p><p><strong>第二步</strong>：在 <code>C:\Users\你的用户名\.ssh\</code> 下新建一个 <code>config</code> 文件（没有后缀名，VSCode 另存为时手动删掉 <code>.txt</code>），内容四行：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">Host github.com</span><br><span class="line">  HostName ssh.github.com</span><br><span class="line">  Port 443</span><br><span class="line">  User git</span><br></pre></td></tr></table></figure><p><strong>第三步</strong>：验证：</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">ssh <span class="literal">-T</span> git@github.com</span><br></pre></td></tr></table></figure><p>看到 <code>Hi 你的用户名! You&#39;ve successfully authenticated</code> 就通了。</p><blockquote><p>踩坑旁白：看到那句 “successfully authenticated” 时我对屏幕说了句”就这？”——是的，就这。配一次，以后所有 push 都走这条稳定通道。</p></blockquote><h3 id="5-最后一个文件：-nvmrc"><a href="#5-最后一个文件：-nvmrc" class="headerlink" title="5. 最后一个文件：.nvmrc"></a>5. 最后一个文件：.nvmrc</h3><p>在博客根目录新建 <code>.nvmrc</code>，内容只有一行：</p><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">20</span><br></pre></td></tr></table></figure><p>这是给 Cloudflare Pages 看的：构建时用 Node 20，和你本地一致，避免”本地好好的、云端构建报错”。</p><p>注意：用编辑器新建保存。别用 PowerShell 的重定向生成——它会存出错误编码，云端读不到。</p><p><strong>再推一次</strong>：</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">git add .</span><br><span class="line">git commit <span class="literal">-m</span> <span class="string">&quot;chore: SSH 通道与 nvmrc&quot;</span></span><br><span class="line">git push</span><br></pre></td></tr></table></figure><h2 id="四、Cloudflare-Pages：把仓库接到云端"><a href="#四、Cloudflare-Pages：把仓库接到云端" class="headerlink" title="四、Cloudflare Pages：把仓库接到云端"></a>四、Cloudflare Pages：把仓库接到云端</h2><h3 id="1-创建项目"><a href="#1-创建项目" class="headerlink" title="1. 创建项目"></a>1. 创建项目</h3><p>登录 Cloudflare 控制台 → 左侧 <strong>Workers &amp; Pages</strong> → <strong>Create</strong> → <strong>Pages</strong> 标签 → <strong>Connect to Git</strong>。</p><h3 id="2-授权-GitHub"><a href="#2-授权-GitHub" class="headerlink" title="2. 授权 GitHub"></a>2. 授权 GitHub</h3><p>第一次会要你授权，点 <strong>Install &amp; Authorize</strong>，勾选你的博客仓库。私有仓库也能连，授权一次以后都自动读。</p><h3 id="3-填配置（核心就三样）"><a href="#3-填配置（核心就三样）" class="headerlink" title="3. 填配置（核心就三样）"></a>3. 填配置（核心就三样）</h3><p><img src="/img/deploy-tutorial/04-cfp-config.svg" alt="Cloudflare Pages 构建配置"></p><table><thead><tr><th>配置项</th><th>填什么</th></tr></thead><tbody><tr><td>生产分支</td><td><code>main</code></td></tr><tr><td>构建命令</td><td><code>npm install &amp;&amp; npx hexo generate</code></td></tr><tr><td>构建输出目录</td><td><code>public</code></td></tr></tbody></table><p>Node 版本不用选——它自动读 <code>.nvmrc</code>（上一步建的那个）。</p><p>点 <strong>Save and Deploy</strong>，第一次构建开始。去 <strong>Deployments</strong> 页看实时日志，几分钟内状态变绿，送你一个 <code>xxx.pages.dev</code> 默认域名。</p><h3 id="4-打开看看"><a href="#4-打开看看" class="headerlink" title="4. 打开看看"></a>4. 打开看看</h3><p>点开那个 pages.dev 域名。能打开——恭喜全链路打通；打不开——不是你配错了，是默认域名国内被墙，看第六节坑三（所以要绑自己的域名）。</p><blockquote><p>踩坑旁白：第一次构建转圈的时候，我盯着日志页刷新了不下二十次。事后想起来明明有邮件通知……但那一刻就是忍不住。</p></blockquote><h2 id="五、日常发布：以后只要四步"><a href="#五、日常发布：以后只要四步" class="headerlink" title="五、日常发布：以后只要四步"></a>五、日常发布：以后只要四步</h2><p>部署是一次性的，之后发文章是日常。流程固化成四步：</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 1. 新建文章</span></span><br><span class="line">npx hexo new post <span class="string">&quot;新文章标题&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 2. 写作（用编辑器打开 source/_posts/ 里的新文件）</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 3. 本地验证</span></span><br><span class="line">npx hexo generate</span><br><span class="line"></span><br><span class="line"><span class="comment"># 4. 推送上线</span></span><br><span class="line">git add .</span><br><span class="line">git commit <span class="literal">-m</span> <span class="string">&quot;post: 新文章标题&quot;</span></span><br><span class="line">git push</span><br></pre></td></tr></table></figure><p>push 之后一分钟内，Cloudflare Pages 自动构建、自动上线，读者刷新就能看到。</p><p>两个习惯：</p><ul><li><strong>本地验证是底线</strong>：<code>hexo generate</code> 报错就在本地解决。构建虽然自动，但每次都红着影响心情。</li><li><strong>为什么不用 <code>hexo deploy</code><strong>：Hexo 自带 <code>hexo d</code>，但要单独配服务器凭证。我们已经有”push 即部署”这条全自动链路，</strong>一条链路好过两条</strong>——我的 <code>_config.yml</code> 里 deploy 那段是直接注释掉的。</li></ul><h2 id="六、我替你踩过的四个坑"><a href="#六、我替你踩过的四个坑" class="headerlink" title="六、我替你踩过的四个坑"></a>六、我替你踩过的四个坑</h2><p><img src="/img/deploy-tutorial/05-pitfalls.svg" alt="四个真实的坑，解法都附上了"></p><h3 id="坑一：仓库套仓库-→-CFP-找不到-package-json"><a href="#坑一：仓库套仓库-→-CFP-找不到-package-json" class="headerlink" title="坑一：仓库套仓库 → CFP 找不到 package.json"></a>坑一：仓库套仓库 → CFP 找不到 package.json</h3><p>症状：构建日志一直红，报找不到 <code>package.json</code>。<br>原因：博客套在别的仓库的子目录里，CFP 只认仓库根。<br>解法（我的实际操作）：用 <code>git subtree split</code> 把 blog 从大仓库里剥出来：</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 在大仓库的根目录执行</span></span><br><span class="line">git subtree split <span class="literal">-P</span> blog <span class="literal">-b</span> blog<span class="operator">-split</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 把剥出来的分支推到新仓库</span></span><br><span class="line">git push git@github.com:你的用户名/博客仓库.git blog<span class="operator">-split</span>:main <span class="literal">--force</span></span><br></pre></td></tr></table></figure><p>然后到 CFP 项目设置里把仓库指到新仓库（或重建项目连新仓库），构建立刻就绿。<br>一句话预防：<strong>一开始就让 blog 文件夹独立成仓库</strong>，就没有这个坑。</p><h3 id="坑二：api-github-com-连不通"><a href="#坑二：api-github-com-连不通" class="headerlink" title="坑二：api.github.com 连不通"></a>坑二：api.github.com 连不通</h3><p>症状：git 操作超时，挂了代理也不行。<br>解法：第三节配好的 SSH 443 通道就是为它准备的。配一次永久受益。</p><h3 id="坑三：部署成功，pages-dev-打不开"><a href="#坑三：部署成功，pages-dev-打不开" class="headerlink" title="坑三：部署成功，pages.dev 打不开"></a>坑三：部署成功，pages.dev 打不开</h3><p>症状：CFP 显示 Success，国内浏览器就是访问不了。<br>原因：默认域名 <code>*.pages.dev</code> 国内被墙。<br>解法：绑定自己的域名——CFP 项目 → <strong>Custom domains</strong> → 添加域名，按提示加 DNS 解析记录。<strong>这是国内能访问的前提</strong>，也是我上线 checklist 的硬性一项。</p><h3 id="坑四：构建成功但站内链接不对"><a href="#坑四：构建成功但站内链接不对" class="headerlink" title="坑四：构建成功但站内链接不对"></a>坑四：构建成功但站内链接不对</h3><p>症状：网站能打开，点链接却跳到 localhost 或 404。<br>原因：<code>_config.yml</code> 的 <code>url</code> 还是默认值。<br>解法：</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">url:</span> <span class="string">https://你的正式域名</span></span><br></pre></td></tr></table></figure><p>改完 push 一次，顺手把导航菜单每项点验一遍。</p><h2 id="七、上线前-Checklist"><a href="#七、上线前-Checklist" class="headerlink" title="七、上线前 Checklist"></a>七、上线前 Checklist</h2><p><img src="/img/deploy-tutorial/06-checklist.svg" alt="上线前 Checklist"></p><table><thead><tr><th>#</th><th>事项</th><th>说明</th></tr></thead><tbody><tr><td>1</td><td><code>_config.yml</code> 的 url 改成正式域名</td><td>链接、分享卡片全靠它</td></tr><tr><td>2</td><td><code>.nvmrc</code> 锁定 Node 版本</td><td>第三节已做，内容就一个 20</td></tr><tr><td>3</td><td>导航菜单逐个点验</td><td>本地 <code>hexo server</code> 过一遍</td></tr><tr><td>4</td><td>CFP 绑定自定义域名 + DNS 解析</td><td>国内访问的必要条件</td></tr><tr><td>5</td><td>进阶项：图床 &#x2F; 评论 &#x2F; 访问统计</td><td>不着急，先跑起来</td></tr></tbody></table><p>域名解析生效要几分钟到几小时，打不开先别慌——多半不是坏了。</p><h2 id="写在最后"><a href="#写在最后" class="headerlink" title="写在最后"></a>写在最后</h2><p>回到开头的人设：我是拾柒，不会写代码。这篇教程里的每条命令、每张图，都是我和 AI 协作完成的——AI 负责写命令、画图解，我负责踩坑、验证、拍板。</p><p>而它此刻正在被你读到，恰好就是这套流程的证明：我改完最后一版，<code>hexo generate</code> 一绿，<code>git push</code> 一下——一分钟内，它自己上线了。</p><p>祝你也能一次就绿。</p><h2 id="参考"><a href="#参考" class="headerlink" title="参考"></a>参考</h2><ul><li><a href="https://hexo.io/zh-cn/docs/">Hexo 官方文档</a></li><li><a href="https://github.com/anzhiyu-c/hexo-theme-anzhiyu">anzhiyu 主题</a></li><li><a href="https://developers.cloudflare.com/pages/">Cloudflare Pages 文档</a></li><li><a href="https://docs.github.com/en/authentication/connecting-to-github-with-ssh/using-ssh-over-the-https-port">GitHub 官方：通过 443 端口使用 SSH</a></li></ul>]]>
    </content>
    <id>https://blog.g8.ccwu.cc/posts/6b2ff43e/</id>
    <link href="https://blog.g8.ccwu.cc/posts/6b2ff43e/"/>
    <published>2026-10-07T10:00:00.000Z</published>
    <summary>保姆级图文教程：从零把 Hexo 博客部署到 Cloudflare Pages——每条命令都在本站真实跑通，含国内网络解法、四个真实坑和上线 Checklist。</summary>
    <title>从本地到上线：不会写代码的博主把博客部署上 Cloudflare Pages 的完整教程</title>
    <updated>2026-10-10T22:00:00.000Z</updated>
  </entry>
</feed>
