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

Azure Pipelines部署异常:代码被部署至wwwroot/s而非wwwroot

解决Azure Pipelines部署React应用到App Service时文件部署到wwwroot/s目录的问题

问题原因

你的流水线当前发布的是整个项目目录(而非React构建后的静态文件目录),导致部署时目录结构错位,最终静态文件被放到了wwwroot/s目录下,而非wwwroot根目录,进而引发访问权限错误。

解决方案

1. 确认React构建输出目录

先确认npm run build:dev执行后生成的静态文件目录,React项目默认是build目录,部分项目可能配置为dist。你可以查看项目根目录下的package.json中scripts字段的build:dev配置,或者查看构建后生成的目录。

2. 修改Build阶段的发布任务

修改PublishPipelineArtifact@1任务,指定仅发布构建后的静态文件目录,而非整个项目目录。假设构建输出目录是build,修改后的任务如下:

- task: PublishPipelineArtifact@1
  displayName: 'Publish Artifact'
  inputs:
    artifact: 'drop'
    publishLocation: 'pipeline'
    targetPath: './build' # 替换为你的实际构建输出目录,比如./dist

3. 调整Deploy阶段的部署路径

由于现在发布的工件仅包含静态文件,部署时直接指向下载后的工件目录即可:

- task: AzureWebApp@1
  displayName: 'Azure App Service Deploy'
  inputs:
    azureSubscription: $(serviceConnection)
    appName: $(webAppName)
    package: '$(Pipeline.Workspace)/drop'
    deploymentMethod: 'runFromPackage'
    appType: 'webApp'
    appSettings: '-appServicePlan $(appServicePlan)'

额外检查(可选)

  • 确认App Service的默认文档设置已包含index.html(静态Web应用的默认首页),可在Azure门户的App Service配置中查看。
  • 流水线中DeployFunctionApp阶段的命名与实际部署WebApp不符,可修改为DeployWebApp避免混淆。

内容的提问来源于stack exchange,提问作者TGB-Opp

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 03:07:13