You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

借助Django Collectstatic实现GitHub Pages自动部署(GitHub Actions入门)

合并Django collectstatic与静态资源部署工作流方案

直接将两个工作流的步骤整合,在部署静态资源前先执行collectstatic生成最新静态文件,实现自动部署。以下是合并后的完整工作流配置:

# 合并Django collectstatic与静态资源部署工作流
name: Deploy Static Assets to Pages

on:
  push:
    branches: ["prod"]
  pull_request:
    branches: ["prod"]
  workflow_dispatch:

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: 检出代码
        uses: actions/checkout@v4
        with:
          ref: 'prod'
      - name: 设置Python环境
        uses: actions/setup-python@v3
        with:
          python-version: "3.12"
      - name: 安装Poetry
        uses: Gr1N/setup-poetry@v9
        with:
          poetry-preview: false
          poetry-version: 1.8.3
      - name: 安装项目依赖
        run: poetry install
      - name: 收集静态文件
        env:
          SECRET_KEY: ${{ secrets.SECRET_KEY }}
          # 这里添加所有Django需要的环境变量,比如DEBUG、DATABASE_URL等
        run: poetry run python manage.py collectstatic --noinput
      - name: 配置GitHub Pages
        uses: actions/configure-pages@v5
      - name: 上传静态资源 artifact
        uses: actions/upload-pages-artifact@v3
        with:
          path: './assets' # 需与Django settings中的STATIC_ROOT一致
      - name: 部署到GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v4

关键注意事项

  • 配置STATIC_ROOT:确保你的Django项目settings.py中设置STATIC_ROOT = BASE_DIR / 'assets',这样collectstatic会将生成的静态文件统一放到./assets目录,与部署步骤的上传路径匹配。
  • 环境变量配置:所有Django运行所需的敏感变量(如SECRET_KEY)都要在GitHub仓库的「Settings → Secrets and variables → Actions」中添加。
  • 优化可选:如果只需要生产环境依赖,可以将poetry install改为poetry install --only main,减少安装时间。

内容的提问来源于stack exchange,提问作者Adora González

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 14:05:59