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

GitHub Actions环境变量未在Vite构建中加载,React部署GitHub Pages失败

React + Vite 部署到GitHub Pages时环境变量不加载的解决方案

问题核心原因

你的配置存在三个关键问题导致环境变量无法正确加载:

  1. Vite配置中引用的环境变量名称与workflow中定义的不匹配
  2. GitHub Actions环境变量的YAML写法错误(多余引号)
  3. 可选:envDir配置可能干扰环境变量读取优先级

分步解决方案

1. 修正Vite配置中的环境变量名称

在vite.config.js中,你使用了process.env.REPO_NAME,但workflow里定义的是VITE_REPO_NAME。Vite要求环境变量必须以VITE_为前缀才能被注入到应用中,同时补充斜杠确保GitHub Pages路径格式正确:

export default defineConfig({
  // ...
  base: process.env.NODE_ENV === 'production'
    ? `/${process.env.VITE_REPO_NAME}/` || '/'
    : '/',
  // 若不需要从本地environment目录加载.env文件,可移除envDir配置;若需保留,确保GitHub Actions环境中该目录存在对应文件
  // envDir: 'environment'
})

2. 修正GitHub Actions工作流的环境变量写法

在.github/workflows/static.yml中,VITE_SERVER_URL的赋值带有多余引号,YAML会将引号作为变量值的一部分,导致Vite读取到错误的URL:

# ...

env:
  VITE_REPO_NAME: ${{ github.event.repository.name }}
  VITE_SERVER_URL: https://this-is-a-server-url.com # 去掉引号,使用标准YAML键值对写法
  
jobs:
  deploy:
    # ... 其他配置保持不变

3. 验证环境变量加载(可选)

如果仍有问题,可在Build步骤中添加打印命令,确认环境变量是否被正确读取:

- name: Build
  run: |
    echo "VITE_REPO_NAME=$VITE_REPO_NAME"
    echo "VITE_SERVER_URL=$VITE_SERVER_URL"
    npm run build

验证部署

完成修改后重新触发部署:

  • 查看Build步骤的日志,确认环境变量已正确输出
  • 部署完成后检查页面,确认base路径和接口URL已正常加载

内容的提问来源于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.22 03:52:39