使用 Vite + React + TypeScript + CSS Modules 搭建的中文 AI 编程营官网,支持 GitHub Pages 自动部署。
npm install
npm run dev如果要本地测试联系表单:
cp .env.example .env然后把 .env 里的以下变量替换成你自己的值:
VITE_STATICFORMS_API_KEYVITE_RECAPTCHA_SITE_KEY
说明:
.env.example只放占位值- 真正的
.env已经被.gitignore忽略,不会被提交 VITE_RECAPTCHA_SITE_KEY是公开的前端 Site KeyreCAPTCHA Secret Key不应该放进.env,而是要填进 Static Forms 后台
仓库已经包含 GitHub Actions 工作流:
首次启用时,请在 GitHub 仓库中确认:
Settings > PagesSource选择GitHub Actions- 在
Settings > Secrets and variables > Actions > Secrets中新增VITE_STATICFORMS_API_KEY - 在
Settings > Secrets and variables > Actions > Variables中新增VITE_RECAPTCHA_SITE_KEY
现在工作流会在构建前检查这两个值;如果漏配,Action 会直接失败并给出明确报错,而不是部署一个无法发送表单的站点。
GitHub Actions 只负责把站点构建并部署到 GitHub Pages。真正的邮件转发发生在用户提交表单时,由浏览器把表单发到 Static Forms,再由 Static Forms 转发到你的邮箱。
- 注册并登录 Static Forms,确认接收邮件的邮箱已经验证完成
- 复制你的 API Key,填到 GitHub Actions Secret
VITE_STATICFORMS_API_KEY - 打开
Settings -> CAPTCHA Settings - 选择
reCAPTCHA v2 Checkbox - 把 Google 提供的
reCAPTCHA Secret Key填进去并保存
- 在 Google reCAPTCHA Admin Console 新建一个
reCAPTCHA v2的I'm not a robotCheckbox - 域名至少加入:
chengzez.github.iostaticforms.devlocalhost
- 保存后拿到
Site Key和Secret Key - 把
Site Key填到 GitHub Actions VariableVITE_RECAPTCHA_SITE_KEY - 把
Secret Key填到 Static Forms 的 CAPTCHA Settings,不要放进前端代码
- 推送到
main或master - 等待 GitHub Actions 构建完成
- 打开
https://chengzez.github.io - 提交一次联系表单,确认页面提示发送成功
- 如果没有收到邮件,先检查垃圾邮箱,并把
noreply@staticforms.dev加入联系人
当前联系表单已经接入:
- Static Forms 邮件转发
- Google reCAPTCHA 前端验证
- GitHub Actions 构建期注入 API Key 和 Site Key
如果配置缺失,页面会直接提示缺少哪一层配置;如果 Static Forms 返回常见错误,例如 API Key 无效、邮箱未验证或 reCAPTCHA 配置不完整,前端也会显示更明确的错误提示。