Azure App Service部署时jszip.min.js丢失问题求助
问题原因及解决方案
核心问题分析
你之前把jszip.min.js加入skip参数的操作完全搞反了——-skip参数的作用是让部署任务完全不处理指定文件:既不会把源工件里的该文件上传到App Service,也不会删除App Service中已有的该文件。但你的需求是让文件正常部署,加skip反而阻止了它被上传,再加上增量部署的同步逻辑(默认会删除目标中源不存在的文件,这里源里虽然有,但被skip排除后,部署任务会认为源里没有这个文件),最终导致App Service里的文件被删除。
另外你怀疑的*.zip通配符确实不会匹配jszip.min.js,这部分规则没问题,可以排除这个因素。
解决步骤
移除skip列表中的
jszip.min.js
立刻删掉你之前加在skip参数里的jszip.min.js,确保部署任务会处理这个文件,把它从源工件上传到App Service。检查文件路径匹配规则
确认jszip.min.js在源工件中的完整路径,比如如果文件在js/jszip.min.js子目录下,要确保AdditionalArguments里的absolutePath规则没有匹配到这个完整路径(目前你的配置里没有相关规则,这部分没问题)。添加防删除规则(可选但推荐)
为了避免部署时误删文件,可以在AdditionalArguments中加入-enableRule:DoNotDeleteRule,这个规则会阻止部署任务删除App Service中已有的文件,只进行新增和更新操作。修改后的配置如下:
steps: - task: AzureRmWebAppDeployment@4 displayName: 'Azure App Service Deploy: app-dev' inputs: azureSubscription: 'Azure Dev Service Connection' WebAppName: 'app-dev' packageForLinux: '$(System.DefaultWorkingDirectory)/Build Artifact/Release' enableCustomDeployment: true AdditionalArguments: '-skip:objectName=filePath,absolutePath="Web.Dev.config|Web.Test.config|Web.Beta.config|Web.Prod.config|android-icon-144x144.png|android-icon-192x192.png|android-icon-36x36.png|android-icon-48x48.png|android-icon-72x72.png|android-icon-96x96.png|apple-touch-icon-114x114.png|apple-touch-icon-120x120.png|apple-touch-icon-144x144.png|apple-touch-icon-152x152.png|apple-touch-icon-180x180.png|apple-touch-icon-57x57.png|apple-touch-icon-60x60.png|apple-touch-icon-72x72.png|apple-touch-icon-76x76.png|apple-touch-icon-precomposed.png|apple-touch-icon.png|favicon-16x16.png|favicon-32x32.png|favicon-96x96.png|apple-icon.png|ms-icon-144x144.png|ms-icon-150x150.png|ms-icon-310x310.png|ms-icon-70x70.png|*.zip" -enableRule:DoNotDeleteRule -retryAttempts:6 -retryInterval:10000' enableXmlTransform: true
- 验证源工件完整性
确认$(System.DefaultWorkingDirectory)/Build Artifact/Release路径下确实存在jszip.min.js,并且文件正常可读,确保部署任务能读取到该文件。
内容的提问来源于stack exchange,提问作者Cataster
相关产品推荐
相关产品推荐

