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

本地Git部署至Azure App Service的路径与范围配置问题

Solution for Deploying Specific Directory to Target Path in Azure Web App via Local Git

针对你的需求,我们可以通过自定义部署脚本精准控制部署内容和目标路径,完美实现只推送Git仓库里的Templates目录到Web App的Site/Templates文件夹,同时忽略Custom code目录。下面是具体的实现步骤:

步骤1:创建部署配置文件

在你的Git仓库根目录下创建一个名为.deployment的文件,内容如下:

[config]
command = deploy.cmd

这个文件会告诉Azure App Service:放弃默认部署流程,执行我们自定义的deploy.cmd脚本完成部署。

步骤2:编写自定义部署脚本

在Git仓库根目录创建deploy.cmd脚本,内容如下:

@echo off
echo Starting custom deployment...

:: 定义源路径(Git仓库里的Templates目录)和目标路径(Web App的Site/Templates)
set SOURCE_DIR=%DEPLOYMENT_SOURCE%\Templates
set TARGET_DIR=%DEPLOYMENT_TARGET%\Site\Templates

:: 检查源目录是否存在,避免部署失败
if not exist "%SOURCE_DIR%" (
    echo Error: Source directory %SOURCE_DIR% does not exist.
    exit /b 1
)

:: 自动创建目标目录(如果不存在)
if not exist "%TARGET_DIR%" (
    mkdir "%TARGET_DIR%"
    echo Created target directory %TARGET_DIR%
)

:: 复制Templates目录下的所有内容到目标路径(覆盖已存在的文件)
xcopy "%SOURCE_DIR%\*" "%TARGET_DIR%\" /E /Y /I
echo Successfully copied Templates content to %TARGET_DIR%

echo Deployment completed successfully!

这个脚本的核心逻辑:

  • 借助Azure提供的环境变量%DEPLOYMENT_SOURCE%(指向推送的Git代码目录)和%DEPLOYMENT_TARGET%(指向Web App根目录)定位路径
  • 只处理Templates目录,完全跳过Custom code
  • 自动创建目标目录,避免因目录缺失导致的部署错误

步骤3:提交并推送配置文件和脚本

把.deployment和deploy.cmd添加到Git仓库并提交:

git add .deployment deploy.cmd
git commit -m "Add custom deployment script to deploy Templates to Site/Templates"

然后像往常一样推送到Azure的Git远程仓库:

git push azure main

额外说明

  • 如果你的Web App是Linux环境,需要把deploy.cmd换成deploy.sh(Shell脚本),逻辑类似,命令替换为Linux的mkdir和cp即可
  • 若想彻底避免Custom code被Git追踪,可在.gitignore中添加Custom code/,不过上述脚本已经不会处理该目录,这一步可选
  • 部署过程中可以在Azure Portal的Web App「部署中心」查看日志,确认脚本执行情况

这样配置后,每次推送Git代码时,Azure只会把你仓库里的Templates目录部署到Web App的Site/Templates路径,完全匹配你的需求。

内容的提问来源于stack exchange,提问作者Martin at Mennt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:00:15