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

通过GitHub Actions部署Azure Web App后ClientApp/dist文件夹为空

排查ASP.NET Core 8+Angular部署到Azure Web App后ClientApp/dist为空的问题

可能的原因及排查修复步骤

1. 确认项目csproj是否配置了Angular构建与发布逻辑

ASP.NET Core集成Angular时,需要在.csproj中配置自动构建Angular并将dist产物纳入发布包的逻辑。检查你的NetCoreWebsite.csproj是否包含类似配置:

<PropertyGroup>
  <!-- 指定Angular项目根目录 -->
  <SpaRoot>ClientApp\</SpaRoot>
</PropertyGroup>

<Target Name="PublishAngular" AfterTargets="ComputeFilesToPublish">
  <!-- 安装依赖并构建Angular生产包 -->
  <Exec WorkingDirectory="$(SpaRoot)" Command="npm install" />
  <Exec WorkingDirectory="$(SpaRoot)" Command="npm run build -- --prod" />
  <!-- 将dist目录文件映射到发布包的wwwroot下 -->
  <ItemGroup>
    <DistFiles Include="$(SpaRoot)dist/**" />
    <ResolvedFileToPublish Include="@(DistFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
      <RelativePath>wwwroot/%(RecursiveDir)%(FileName)%(Extension)</RelativePath>
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </ResolvedFileToPublish>
  </ItemGroup>
</Target>

如果缺少这段配置,dotnet publish只会发布.NET后端代码,不会自动构建和包含Angular的dist文件。

2. 验证GitHub Actions构建阶段的产物路径

在build任务中添加验证步骤,确认dotnet publish输出目录里的wwwroot/ClientApp/dist确实存在文件:

- name: Verify Angular dist files in publish output
  run: ls -R ${{env.DOTNET_ROOT}}/myapp/wwwroot/ClientApp/dist

查看Action日志,确认该目录下有index.html、main.*.js等文件。如果路径不符,需调整csproj里的RelativePath配置,或者手动复制文件到正确位置。

3. 手动在GitHub Actions中添加Angular构建步骤

如果csproj未配置自动构建,可在build阶段手动执行Angular构建,并将产物复制到发布目录:

- name: Install Angular dependencies
  run: npm install
  working-directory: ./NetCoreWebsite/ClientApp

- name: Build Angular for production
  run: npm run build -- --prod
  working-directory: ./NetCoreWebsite/ClientApp

- name: Copy Angular dist to publish directory
  run: cp -r ./NetCoreWebsite/ClientApp/dist ${{env.DOTNET_ROOT}}/myapp/wwwroot/ClientApp/

将这段代码插入到dotnet publish步骤之后,确保dist文件被复制到发布包的wwwroot/ClientApp/目录下。

4. 检查Azure Web App的部署配置

  • 登录Azure Portal,进入你的Web App,打开部署中心,确认部署模式为常规(若使用“从包运行”模式,需确保发布包结构正确)。
  • 通过Kudu调试控制台(访问https://<你的webapp名>.scm.azurewebsites.net/DebugConsole),查看site/wwwroot/ClientApp/dist目录,确认文件是否存在。如果dist文件被放到其他路径,需调整发布时的路径映射。

5. 确认Azure Web App部署步骤的包路径

你的deploy任务中azure/webapps-deploy@v2的package: .配置正确,但可尝试指定完整路径排查:

- name: Deploy to Azure Web App
  id: deploy-to-webapp
  uses: azure/webapps-deploy@v2
  with:
    app-name: 'develop-redacted'
    slot-name: 'Production'
    package: ${{ github.workspace }}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 14:06:24