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

Azure App Service部署Blazor .NET6应用丢失CSS文件求助

问题描述

已成功将Blazor .NET 6应用部署为Azure App Service,但存在以下问题:

  • 项目wwwroot文件夹中的CSS文件丢失,字体图标正常显示
  • 站点加载时无CSS样式应用,样式编辑器窗口为空
    使用Azure DevOps Pipeline部署代码,推测问题出在Pipeline配置中,原YAML配置如下:
# ASP.NET
# Build and test ASP.NET projects.
# Add steps that publish symbols, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/apps/aspnet/build-aspnet-4

trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@1

- task: DotNetCoreCLI@2
  inputs:
    command: 'restore'
    restoreSolution: '**/*.sln'
    feedsToUse: 'config'
    nugetConfigPath: nuget.config

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)" /p:UseWPP_CopyWebApplication=true  /p:OutDir="$(build.artifactstagingdirectory)"'
    configuration: '$(buildConfiguration)'  

- task: ArchiveFiles@2
  inputs:
    rootFolderOrFile: '$(Build.ArtifactStagingDirectory)'
    includeRootFolder: false
    archiveType: 'zip'
    archiveFile: '$(System.DefaultWorkingDirectory)/deploy.zip'
    replaceExistingArchive: true
    
- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(System.DefaultWorkingDirectory)'
    ArtifactName: 'drop'
    publishLocation: 'Container'
    
- task: AzureRmWebAppDeployment@4
  inputs:
    ConnectionType: 'AzureRM'
    azureSubscription: '<sub name>(2442165c-339d-4e83-a443-*******)'
    appType: 'webAppLinux'
    WebAppName: 'hrchangemanagement'
    deployToSlotOrASE: false
    ResourceGroupName: 'HRChangeManagement'
    packageForLinux: '$(System.DefaultWorkingDirectory)/deploy.zip'
    RuntimeStack: 'DOTNETCORE|6.0'
    StartupCommand: 'dotnet "HR Taxonomy Change Management.dll"'
问题分析

当前Pipeline存在两个核心问题:

  1. 使用VSBuild任务打包Blazor项目,不如DotNetCoreCLI的publish命令适配.NET Core/Blazor项目,容易导致wwwroot静态文件未被正确纳入部署包。
  2. 手动执行ArchiveFiles任务归档文件,可能破坏了publish生成的正确文件结构,导致Azure App Service无法识别wwwroot目录。
解决建议

修改Pipeline配置,用DotNetCoreCLI publish替代VSBuild和手动归档步骤,确保静态文件被正确打包:

  1. 移除原VSBuild和ArchiveFiles任务,添加DotNetCoreCLI@2的publish命令,直接生成包含wwwroot的部署包。
  2. 调整AzureRmWebAppDeployment任务的包路径,指向publish生成的zip文件。
  3. 可选:保留PublishBuildArtifacts任务以便留存部署包。

修改后的完整YAML配置:

trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'
  publishOutputPath: '$(build.artifactStagingDirectory)/published'

steps:
- task: NuGetToolInstaller@1

- task: DotNetCoreCLI@2
  inputs:
    command: 'restore'
    restoreSolution: '**/*.sln'
    feedsToUse: 'config'
    nugetConfigPath: nuget.config

# 替换VSBuild为DotNet publish,自动包含wwwroot静态文件
- task: DotNetCoreCLI@2
  inputs:
    command: 'publish'
    publishWebProjects: true
    arguments: '--configuration $(buildConfiguration) --output $(publishOutputPath)'
    zipAfterPublish: true
    modifyOutputPath: false

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(publishOutputPath)'
    ArtifactName: 'drop'
    publishLocation: 'Container'
    
- task: AzureRmWebAppDeployment@4
  inputs:
    ConnectionType: 'AzureRM'
    azureSubscription: '<sub name>(2442165c-339d-4e83-a443-*******)'
    appType: 'webAppLinux'
    WebAppName: 'hrchangemanagement'
    deployToSlotOrASE: false
    ResourceGroupName: 'HRChangeManagement'
    # 指向publish生成的zip包
    packageForLinux: '$(publishOutputPath)/**/*.zip'
    RuntimeStack: 'DOTNETCORE|6.0'
    StartupCommand: 'dotnet "HR Taxonomy Change Management.dll"'
额外验证步骤
  • 部署完成后,登录Azure Portal,进入App Service的高级工具>Kudu,查看site/wwwroot目录是否存在CSS文件。
  • 检查Pipeline中publish任务的日志,确认wwwroot文件夹被正确复制到输出目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 22:23:20