GitHub Action部署Azure WebApp后wwwroot目录为空问题求助
GitHub Action部署Azure Web应用后wwwroot为空的排查思路
我尝试通过GitHub Action将Web应用部署到Azure,但部署完成后site/wwwroot目录完全为空,相关情况如下:
- 流水线执行无任何失败
- 发布的产物包含正确的文件
- 手动通过FTP将文件上传至wwwroot可正常运行
YAML配置片段
name: Build and deploy on: push: branches: - main workflow_dispatch: env: AZURE_WEBAPP_NAME: Name AZURE_WEBAPP_PACKAGE_PATH: Name\publish CONFIGURATION: Release DOTNET_CORE_VERSION: 6.0.x WORKING_DIRECTORY: Name jobs: build: runs-on: windows-latest steps: - uses: actions/checkout@v3 - name: Setup .NET SDK uses: actions/setup-dotnet@v3 with: dotnet-version: ${{ env.DOTNET_CORE_VERSION }} - name: Restore run: dotnet restore "${{ env.WORKING_DIRECTORY }}" - name: Build run: dotnet build "${{ env.WORKING_DIRECTORY }}" --configuration ${{ env.CONFIGURATION }} --no-restore - name: Test run: dotnet test "${{ env.WORKING_DIRECTORY }}" --no-build - name: Publish run: dotnet publish "${{ env.WORKING_DIRECTORY }}" --configuration ${{ env.CONFIGURATION }} --no-build --output "${{ env.AZURE_WEBAPP_PACKAGE_PATH }}" - name: Publish Artifacts uses: actions/upload-artifact@v3 with: name: webapp path: ${{ env.AZURE_WEBAPP_PACKAGE_PATH }} deploy: runs-on: windows-latest needs: build steps: - name: Download artifact from build job uses: actions/download-artifact@v3 with: name: webapp path: ${{ env.AZURE_WEBAPP_PACKAGE_PATH }} - name: Deploy to Azure WebApp uses: azure/webapps-deploy@v3 with: app-name: ${{ env.AZURE_WEBAPP_NAME }} publish-profile: ${{ secrets.Name_BBF6 }} package: ${{ env.AZURE_WEBAPP_PACKAGE_PATH }}
Action日志片段
Package deployment using OneDeploy initiated. { id: '11111111111111', status: 4, status_text: '', author_email: 'N/A', author: 'N/A', deployer: 'OneDeploy', message: 'OneDeploy', progress: '', received_time: '2023-11-21T11:17:41.9110402Z', start_time: '2023-11-21T11:17:42.1610338Z', end_time: '2023-11-21T11:17:44.5828528Z', last_success_end_time: '2023-11-21T11:17:44.5828528Z', complete: true, active: true, is_temp: false, is_readonly: true, url: 'https://name.scm.azurewebsites.net/api/deployments/latest', log_url: 'https://name.scm.azurewebsites.net/api/deployments/latest/log', site_name: 'Name', provisioningState: 'Succeeded' } Deploy logs can be viewed at https://name.scm.azurewebsites.net/api/deployments/1111111111/log Successfully deployed web package to App Service.
排查与解决思路
- 修正路径分隔符:当前
AZURE_WEBAPP_PACKAGE_PATH使用Windows反斜杠\,建议改为正斜杠/(Name/publish),避免跨步骤的路径解析异常。 - 验证artifact内容:在deploy步骤中添加
run: dir "${{ env.AZURE_WEBAPP_PACKAGE_PATH }}"命令,确认下载后的目录存在文件,排除上传/下载过程中的文件丢失问题。 - 调整部署包路径:尝试将
azure/webapps-deploy的package参数改为${{ env.AZURE_WEBAPP_PACKAGE_PATH }}/**,确保工具能识别到目录下所有待部署文件。 - 检查App Service运行模式:确认Azure门户中App Service的“常规设置”是否开启“从包运行”,开启后文件不会解压到wwwroot,而是直接从包运行,此时wwwroot为空属于正常情况,但应用应能正常启动。
- 查看详细部署日志:访问日志中的
log_url,查看OneDeploy的具体执行记录,排查是否存在静默失败或文件上传遗漏的情况。
内容的提问来源于stack exchange,提问作者andyb952
相关产品推荐
相关产品推荐

