部署
FluxPress 生成的是纯静态文件(public/ 目录),可以部署到任意静态托管平台。
构建产物
执行完整的构建流程后,public/ 目录即为最终的部署产物:
public/
├── index.html # 首页
├── page/2/index.html # 第 2 页(如有)
├── posts/<id>/ # 文章详情页
├── archives/ # 归档页
├── categories/ # 分类页
├── tags/ # 标签页
├── about/ # 关于页
├── 404.html # 404 页面
├── CNAME # 自定义域名(如配置了 site.cname)
└── css/ # 主题样式文件部署到 GitHub Pages
推荐使用 GitHub Actions 自动化构建和部署。
1. 创建 GitHub Actions 工作流
在你的项目仓库中创建 .github/workflows/deploy.yml:
yaml
name: Deploy FluxPress Site
on:
push:
branches:
- main
issues:
types:
- opened
- edited
- deleted
- labeled
- unlabeled
- milestoned
- demilestoned
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: pages
cancel-in-progress: false
jobs:
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm install
- name: Fetch data from GitHub
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npx fluxpress fetch
- name: Generate static site
run: npx fluxpress generate
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: './public'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v42. 启用 GitHub Pages
- 进入仓库 Settings → Pages
- Source 选择 GitHub Actions
- 保存设置
3. 配置自定义域名(可选)
如需使用自定义域名,在 fluxpress.config.classic.js 中配置 site.cname:
javascript
export default {
site: {
cname: 'blog.example.com',
// ...
},
}FluxPress 会在构建时自动生成 public/CNAME 文件。然后在域名 DNS 服务商处添加对应的 CNAME 记录,指向 <username>.github.io。
触发时机说明
上面的工作流配置了以下触发条件:
push到 main 分支:当推送代码(如修改配置)时触发- Issues 事件:当 Issue 被创建、编辑、删除、添加/移除标签或 Milestone 时自动触发重新构建
这样每次在 GitHub 上发布或编辑文章,站点会自动更新。
部署到 Vercel
- 将项目推送到 GitHub 仓库
- 登录 Vercel,点击 Add New Project
- 导入你的 GitHub 仓库
- 配置构建设置:
- Build Command:
npx fluxpress fetch && npx fluxpress generate - Output Directory:
public - Environment Variables: 添加
GITHUB_TOKEN
- Build Command:
- 点击 Deploy
TIP
Vercel 的免费计划不支持 GitHub Issues 触发自动重新部署。如需自动更新,可结合 GitHub Actions 和 Vercel 的 Deploy Hooks 实现。
部署到 Netlify
- 将项目推送到 GitHub 仓库
- 登录 Netlify,点击 Add new site → Import an existing project
- 连接 GitHub,选择你的仓库
- 配置构建设置:
- Build command:
npx fluxpress fetch && npx fluxpress generate - Publish directory:
public
- Build command:
- 在 Environment variables 中添加
GITHUB_TOKEN - 点击 Deploy site
手动部署
如果你希望手动部署,只需执行构建命令并将 public/ 目录上传到服务器:
bash
npx fluxpress fetch
npx fluxpress generate
# 然后将 public/ 目录的内容上传到你的 Web 服务器public/ 目录是完整的静态站点,可以用任意 Web 服务器(Nginx、Apache、Caddy 等)直接托管。
