Azure Pipeline部署Asp.net Core至远程服务器目录结构异常求助
解决Azure Pipeline FTP上传Asp.net Core项目丢失目录结构的问题
问题原因
你的FTP上传任务中preservePaths参数设置为false,这个参数决定是否保留本地文件的目录结构。设为false时,所有文件会直接上传到远程目录的根路径,不会创建wwwroot等子文件夹,导致静态资源无法加载。
解决方案
修改Upload Publish Files任务的preservePaths为true,确保上传时保留本地的目录结构:
- task: FtpUpload@2 inputs: credentialsOption: 'inputs' serverUrl: '$(ftpServer)' username: '$(ftpUsername)' password: '$(ftpPassword)' rootDirectory: '$(Build.ArtifactStagingDirectory)/published' filePatterns: '**' remoteDirectory: '$(ftpRootDirectory)' clean: false cleanContents: false preservePaths: true # 此处修改为true trustSSL: false displayName: 'Upload Publish Files'
额外说明
- 确认
dotnet publish阶段的输出目录$(Build.ArtifactStagingDirectory)/published已经包含完整的目录结构(包括wwwroot),你提到设置zipAfterPublish=true时结构正确,说明本地发布环节无问题。 - 其他FTP任务(如上传/删除App_Offline.htm)若无需保留路径,可继续使用
preservePaths: false,不影响核心功能。
内容的提问来源于stack exchange,提问作者ramin azadi
相关产品推荐
相关产品推荐

