GitHub Actions+Azure CLI部署React项目报错:'.'非有效本地路径
问题分析
报错'.'不是有效本地文件路径或无访问权限的核心原因是:React项目和.NET项目的部署逻辑不同——.NET构建后会生成可直接部署的发布目录,而React需要先编译生成静态资源目录,你直接用.作为部署路径时,要么当前目录没有可部署的有效内容,要么构建步骤缺失导致产物不存在。
解决方案
1. 补全React构建步骤
在部署前必须执行依赖安装和构建命令,生成静态资源目录:
- name: 安装依赖并构建项目 run: | npm install npm run build
这一步会在项目根目录生成build文件夹,里面是React项目的可部署静态文件。
2. 修正az webapp deploy的路径参数
不要用.作为部署路径,直接指向构建后的build目录,同时指定静态站点类型:
- name: 部署到Azure Web App run: | az webapp deploy \ --name ${{ env.AZURE_WEBAPP_NAME }} \ --resource-group ${{ env.AZURE_RESOURCE_GROUP }} \ --src-path ./build \ --type static
3. 验证目录与权限(排查用)
如果仍报错,添加步骤确认目录结构和权限:
- name: 检查目录和权限 run: | pwd ls -la ls -la ./build
这能帮你确认build目录是否存在,以及当前运行环境是否有访问权限。
4. 配置Azure Web App静态站点模式
登录Azure门户,进入你的Web App→配置→常规设置,启用静态内容选项,确保静态站点能正常被服务。
完整YAML示例片段
jobs: build-and-deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: 设置Node.js环境 uses: actions/setup-node@v4 with: node-version: '20.x' # 替换为你项目使用的Node.js版本 - name: 安装依赖并构建项目 run: | npm install npm run build - name: Azure服务主体登录 uses: azure/login@v2 with: creds: ${{ secrets.AZURE_SERVICE_PRINCIPAL }} - name: 部署到Azure Web App run: | az webapp deploy \ --name ${{ env.AZURE_WEBAPP_NAME }} \ --resource-group ${{ env.AZURE_RESOURCE_GROUP }} \ --src-path ./build \ --type static
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

