借助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
相关产品推荐
相关产品推荐

