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

Flutter Web应用经GitHub Actions部署后项目页显示异常

解决Flutter项目GitHub Pages与用户Pages冲突问题

问题

我把一个Flutter应用部署成了用户GitHub Pages(地址:sensn.github.io),之后用GitHub Actions工作流尝试部署另一个Flutter Web应用作为项目GitHub Pages(地址:sensn.github.io/particle_field)。现在两个页面都加载用户Pages上的Flutter应用,项目页没显示对应的particle_field应用,推测是缓存或配置问题,但不知道怎么修。

原因

  • Flutter Web默认按根路径构建资源,部署到项目子路径时会错误请求根目录的用户Pages资源
  • GitHub Pages缓存机制可能导致旧资源未更新
  • Action构建时未配置正确的base href,导致资源加载路径错误

修复步骤

1. 构建时指定Base Href

执行flutter build web命令必须加上--base-href "/particle_field/"参数,让所有资源从子路径加载,避免和根路径的用户Pages冲突。

修改Action中的构建命令:

flutter build web --release --base-href "/particle_field/"

2. 检查项目GitHub Pages设置

  • 进入项目仓库的Settings -> Pages
  • 确认部署源选择gh-pages分支,发布目录为根目录(/)
  • 保存设置后等待部署完成

3. 清除缓存

  • 访问项目页时按Ctrl + Shift + R(Windows/Linux)或Cmd + Shift + R(Mac)强制刷新,清空浏览器缓存
  • 若仍有问题,可在GitHub Pages设置中重新触发部署,或删除旧的gh-pages分支后重新推送

4. 修正后的GitHub Actions配置

把原main.yml修改为以下内容,重点添加了base-href参数:

name: particle_field
on:
  push:
    branches:
      - main
jobs:
  build:
    name: Build Web
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: subosito/flutter-action@v2
        with:
          channel: 'master'
      - run: |
             cd example    
             flutter config --enable-web
             flutter pub get
             # 指定子路径的base href
             flutter build web --release --base-href "/particle_field/"
      - run: |
          cd example/build/web
          git init
          git config --global user.email "你的邮箱地址"
          git config --global user.name "你的GitHub用户名"
          git remote add origin https://${{secrets.Commit_secret}}@github.com/sensn/particle_field.git
          git checkout -b gh-pages
          git add --all
          git commit -m "update"
          git push origin gh-pages -f   

内容的提问来源于stack exchange,提问作者sensn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 08:07:32