用提示词搞定 GitHub Pages 与 Nginx 双部署:TaoToken 配置骨架与验证清单

发布时间:2026/9/26 16:40:16

用提示词搞定 GitHub Pages 与 Nginx 双部署:TaoToken 配置骨架与验证清单 1. 为什么静态站点要同时上 GitHub Pages 和 Nginx个人静态站点最常见的两种发布方式一种是托管到 GitHub Pages另一种是丢到自己的服务器上用 Nginx 提供服务。前者免费、自带 HTTPS、推代码就上线适合做展示和备份后者可控、能挂自定义域名、能加缓存和鉴权适合做正式入口。很多人的真实需求是同一份构建产物两边都要能跑而且路由、资源路径、子目录访问都不能出问题。我这次要处理的场景是一个用 Umi 4 React 18 搭的前端工具集构建后输出到dist/。它既要发布到https://用户名.github.io/也要部署到自建服务器的/var/www/site目录下。听起来只是复制文件但实际踩坑集中在三处SPA 子路由在 GitHub Pages 上直接访问返回 404、Nginx 下静态资源路径错乱、以及构建和部署流程里缺少统一的配置骨架导致每次改完都要手动核对一遍。这篇不聊虚的直接给一套可复制的配置骨架一份提示词模板帮你把项目上下文喂给 AI 助手一份 Nginxserver配置一段 GitHub Actions 工作流再加上本地curl和线上路径的双重验证动作。目标很明确——你照着改完双端一次跑通。中间涉及统一 Key 和 API 通道的部分我会用 TaoToken 的settings.json示例串起来方便你在同一套工程里管理模型调用配置。2. TaoToken 前置统一 Key 与 API 通道的 settings.json在双部署项目里前端构建本身不一定需要模型调用但如果你用 AI 助手参与生成配置、排查报错、写工作流就会涉及一个统一入口的问题。TaoToken 在这里扮演的角色是提供统一的 API 通道和 Key 管理让你不用在多个工具之间来回切换配置。先拿到 Key。打开控制台创建 API Key地址是https://taotoken.net/console。创建后复制保存后面写进settings.json。{ provider: taotoken, api_base: https://taotoken.net/api, api_key: sk-你的Key, model: claude-sonnet, timeout: 60, retry: 2 }这份settings.json放在项目根目录或者你的工具配置目录下都行关键是api_base指向https://taotoken.net/api不要带多余路径。model字段按你实际用的模型填timeout和retry是给网络波动留的余量。如果你更习惯在对话界面里验证模型连通性可以直接用模型对话入口https://taotoken.net/models。想先确认 Key 是否生效最省事的办法是发一条最小请求看返回结构对不对。curl -s https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的Key \ -H Content-Type: application/json \ -d { model: claude-sonnet, messages: [{role: user, content: ping}] }返回里能看到choices字段就说明通道通了。这一步别跳过很多人后面工作流报错其实是 Key 或api_base写错跟部署本身没关系。注意api_base只写到/api具体接口路径由客户端拼接不要手动加/v1之外的冗余段。3. 可复制配置Nginx server 骨架与 GitHub Actions 工作流3.1 Nginx server 配置骨架Nginx 这块的核心是两件事静态资源能正确命中SPA 子路由回退到index.html。下面这份配置可以直接改域名和目录用。server { listen 80; server_name example.com www.example.com; root /var/www/site; index index.html; # 静态资源缓存 location ~* \.(js|css|png|jpg|jpeg|gif|svg|woff2?)$ { expires 7d; add_header Cache-Control public, max-age604800; try_files $uri 404; } # SPA 主入口回退 location / { try_files $uri $uri/ /index.html; } # 子路由显式回退避免深层路径 404 location ~ ^/(tools|blog|pricing)/ { try_files $uri $uri/ /index.html; } # 关闭目录列表 autoindex off; }几个参数说明一下。try_files $uri $uri/ /index.html是 SPA 的标准回退写法先找真实文件找不到就交给前端路由。location ~ ^/(tools|blog|pricing)/这段是针对已知子路由的显式回退实测下来比只靠主location更稳尤其是带尾斜杠的访问。静态资源那段单独拎出来加缓存避免每次刷新都重新拉 JS。改完配置先测语法再重载sudo nginx -t sudo systemctl reload nginxnginx -t返回syntax is ok和test is successful才算过。如果报unexpected }多半是括号没配对逐段核对。3.2 GitHub Actions 工作流片段GitHub Pages 这边用 Actions 自动构建发布。下面这段放在.github/workflows/deploy.yml。name: Deploy to GitHub Pages on: push: branches: [main] permissions: contents: write jobs: build-and-deploy: runs-on: ubuntu-latest steps: - uses: actions/checkoutv4 - uses: actions/setup-nodev4 with: node-version: 18 cache: pnpm - run: pnpm install --frozen-lockfile - run: pnpm run build - uses: peaceiris/actions-gh-pagesv3 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./dist publish_branch: gh-pagespermissions: contents: write是必须的否则推送gh-pages分支会被拒。publish_dir指向构建输出目录publish_branch指定发布分支。cache: pnpm能省不少安装时间。3.3 构建配置里的路径处理双部署最容易翻车的地方是资源路径。构建配置里把publicPath设成相对路径两边都能兼容。// .umirc.ts 关键片段 export default { base: /, publicPath: ./, hash: true, exportStatic: {}, runtimePublicPath: {}, };exportStatic: {}会为每个路由生成独立 HTML这是解决 GitHub Pages 子路由 404 的关键。publicPath: ./用相对路径Nginx 子目录部署时资源不会指错。runtimePublicPath配合相对路径做动态资源定位。4. 验证请求本地 curl 与线上路径双重检查配置写完不算完得验证。分两步走先本地再线上。本地构建后起一个静态服务模拟 Nginx 行为pnpm run build npx serve dist -l 3000然后 curl 几个关键路径看返回码和内容curl -I http://localhost:3000/ curl -I http://localhost:3000/tools/code-formatter curl -I http://localhost:3000/blog-I只看响应头。理想结果是全部返回200Content-Type是text/html。如果子路由返回404说明exportStatic没生效或者构建产物里缺对应 HTML。线上验证分两端。GitHub Pages 这边curl -I https://用户名.github.io/ curl -I https://用户名.github.io/tools/code-formatterNginx 这边curl -I http://example.com/ curl -I http://example.com/tools/code-formatter curl -I http://example.com/assets/index-abc123.js重点看第三个静态资源要返回200且Cache-Control带max-age。如果返回404多半是publicPath写成了绝对路径或者 Nginx 的root指错了目录。再补一个内容层面的检查确认返回的确实是你的页面而不是默认页curl -s http://example.com/ | grep -o title[^]*/title标题对得上说明请求打到了正确的index.html。5. 本篇常见错排查5.1 GitHub Pages 子路由直接访问 404现象是首页正常但刷新/tools/xxx就 404。原因是 GitHub Pages 是纯静态托管不认识前端路由。解决办法就是构建时开exportStatic为每个路由生成独立 HTML 文件。构建完检查dist/目录应该能看到tools/code-formatter/index.html这样的结构而不是只有一个根index.html。5.2 Nginx 下 JS/CSS 资源 404现象是页面能打开但样式全丢控制台一堆资源 404。根因是publicPath用了绝对路径/子目录部署时请求打到了错误位置。改成./相对路径配合runtimePublicPath。改完重新构建再 curl 一个具体资源文件确认。5.3 组件未导入导致的运行时错误这类错误跟部署无关但会在构建后暴露。典型报错是ReferenceError: Statistic is not defined原因是用了 Ant Design 的组件却没在 import 里加。排查方法是看报错文件名定位到具体组件检查 import 语句。// 修复前 import { Card, Upload, Button } from antd; // 修复后 import { Card, Upload, Button, Statistic } from antd;5.4 Actions 推送 gh-pages 被拒报错通常是remote: Permission to ... denied。检查工作流里有没有permissions: contents: write以及仓库设置里 Actions 的权限是否放开。另一个常见原因是GITHUB_TOKEN没传对确认with块里写了github_token: ${{ secrets.GITHUB_TOKEN }}。5.5 Nginx 重载后配置没生效改了配置但行为没变先确认nginx -t通过再确认reload执行成功。有时候是浏览器缓存了旧的 JS用curl加-H Cache-Control: no-cache绕过缓存验证。还有一种情况是配置改在了错误的server块里用nginx -T打印完整生效配置核对。6. 把配置骨架沉淀成可复用的提示词模板双部署这件事配置本身不复杂复杂的是每次新项目都要重新捋一遍路径、回退、缓存这些细节。我的做法是把上面这套骨架沉淀成一份提示词模板让 AI 助手在生成配置时直接带上项目上下文减少来回试错。模板大概长这样项目Umi 4 React 18 静态站点 构建输出dist/ 部署目标GitHub Pages 自建 Nginx 已知约束 - SPA 子路由需回退 index.html - 资源路径用相对路径 - Nginx root 为 /var/www/site 请生成 1. Nginx server 配置含静态资源缓存和子路由回退 2. GitHub Actions 工作流发布到 gh-pages 分支 3. 本地 curl 验证命令清单把这段连同你的settings.json一起交给助手生成的配置基本能直接用。涉及模型调用的部分统一走 TaoToken 的 API 通道Key 在控制台管理配置里只留api_base和占位 Key。这样换项目时只需要改域名和目录其余骨架不动。如果你后面要长期维护多个站点或者把部署流程接进 Agent 自动跑可以考虑用 Coding Plan 把构建、验证、发布串成一条流水线减少手动操作。接入文档里有完整的接口说明排障时对照着看能省不少时间。
延伸阅读

更多相关文章

2026/9/26 16:35:15

DELL服务器RAID配置深度指南:从BIOS到UEFI引导链路全解析

1. 为什么RAID配置不是“进BIOS点几下就完事”的事你刚拆开一台崭新的DELL PowerEdge R740,硬盘插好、电源接稳,满心欢喜按F2进BIOS——结果卡在PERC H740p界面里,光标在“Create Virtual Disk”上闪了三分钟,你连RAID 0和RAID 1的…

2026/9/26 17:30:19

AI模板文件设计实战:智能指令、多语言差异与问题排查

2. 核心细节解析与实操要点2.1 模板文件的基本结构与关键参数我先摊开一个最基础的模板文件给大家看,这是理解整套体系的地基。一个标准的模板文件,通常长这样:2.2 模板中使用“智能指令”的正确姿势光有静态的代码结构还远远不够。一个好的模…

2026/9/26 17:30:19

保险核心系统重构实战:事件驱动与领域建模的金融架构解析

去年我接手了一个保险核心系统重构项目,内部代号就叫 financial-services。这名字看着宽泛,但实际做下来,它几乎涵盖了金融服务行业的大部分典型技术命题:领域建模、事件驱动、客户数据治理、安全合规、高可用架构和可观测性。当时…

2026/9/26 17:30:19

Claude代码模板工程化:npm CLI驱动的AI指令协议

1. 项目概述:这不是一个“插件”,而是一套可复用的代码生成骨架 你搜“claude-code-templates”时,大概率会撞上一堆混乱信息:npm报错、CLI安装失败、401 Unauthorized、不支持地区提示、VS Code配置失效……这些不是偶然&#xf…

2026/9/26 17:30:19

大厂Java岗面试实录:Spring Boot、微服务与Kafka高并发实战复盘

讲实话,面完这场大厂Java岗的第三轮,我坐在会议室外的沙发上喝了整整半瓶水才缓过来。不是说题目有多刁钻,而是面试官的追问方式会让你明显感觉到——八股文背得再熟,没有真正在项目里趟过一遍坑,根本接不住话。整个面…

2026/9/26 17:30:19

RHCSA备考全攻略:从EX200考点到避坑实战指南

对于搞Linux运维这行的人来说,RHCSA这个缩写你一定不陌生。红帽认证系统管理员,是红帽认证体系里最基础、也是最硬核的一张证书——它不考你背了多少命令,而是直接在真实系统环境里考你“会不会干活”。我见过太多人简历写着“熟悉Linux”&am…

2026/9/26 17:25:19

透明背景与系统图标:从RGBA原理到跨平台格式转换工作流

1. 透明背景与系统图标:设计师最常被"反杀"的一个环节先讲一个我自己的真实经历。有一回给一个桌面应用做整套图标,设计稿里清清楚楚是透明底,导出 PNG 的时候也反复确认过有 Alpha 通道。结果交付给开发同学,对方把图标…

2026/9/25 21:00:17

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/25 20:59:52

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/26 0:04:28

画质修复APP怎么选?Wink影像修复能力与产品实力解析

现如今手机拍摄场景愈发丰富,演唱会直拍、漫展记录、老视频翻新、日常vlog录制,都会遇到画面模糊、噪点多、曝光失衡等问题,不少用户在挑选工具时比较在意一款画质修复APP能够兼顾修复效果与自然质感。Wink作为美图公司推出的全球化AI影像增强…

2026/9/26 0:04:28

超低能耗建筑K值要求能否满足?浙东铝业建筑型材解析

核心摘要浙东铝业的超低能耗系统门窗产品,资料显示保温性能可达 K≤1.4W/(㎡K),能够对应上海地区超低能耗住宅对门窗保温性能的应用需求。判断建筑是否满足超低能耗要求,不能只看铝型材本身,还需要结合玻璃、隔热条、密封系统、开…

2026/9/25 20:55:38

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/25 18:41:36

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/25 18:34:56

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑