Flutter Web通过GitHub Actions部署GitHub Pages失败,页面空白求助
Flutter Web部署GitHub Pages空白页排查与解决
1. 修复工作流中的目录变量问题
你的工作流里使用了${{env.working-directory}}但未定义该环境变量,导致flutter pub get和flutter build web可能在错误目录执行,最终无法生成正确的Web产物。
修改方案:
- 若Flutter项目在仓库根目录,直接删除
working-directory: ${{env.working-directory}}这一行; - 若项目在子目录,先在jobs中定义
env字段指定路径,示例:
jobs: build-and-deploy: runs-on: ubuntu-latest env: working-directory: ./your-subdir # 替换为你的项目子目录路径 environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} # 后续步骤保持不变
2. 添加base-href参数构建Web产物
GitHub Pages的访问路径为https://<用户名>.github.io/<仓库名>/,Flutter Web默认资源路径为根目录,不指定base href会导致资源加载失败,页面空白。
修改Build web app步骤的命令,添加--base-href参数:
- name: Build web app run: flutter build web --base-href="/<你的仓库名>/" working-directory: ${{env.working-directory}} # 若已定义目录则保留,否则删除该行
注意将<你的仓库名>替换为实际仓库名称。
3. 确认GitHub Pages部署配置
进入仓库的Settings -> Pages页面,检查:
- Source是否选择
GitHub Actions,而非其他分支(如gh-pages); - 部署环境是否为
github-pages,与工作流配置一致。
4. 验证本地构建产物
手动在本地执行flutter build web --base-href="/<仓库名>/",查看build/web目录下是否有完整的HTML、JS、CSS文件,打开本地index.html测试(本地打开可能存在CORS报错,但至少能看到页面基础结构)。
内容的提问来源于stack exchange,提问作者MikeSmith
相关产品推荐
相关产品推荐

