VSTS Azure Web部署不同的文件夹

时间:2017-09-27 07:04:01

标签: php laravel azure azure-devops azure-powershell

我正在使用VSTS,我的Laravel Web应用程序中有我的存储库。所以我想将我的应用程序部署到wwwroot,但是“相对于站点根目录的物理路径”必须设置为“site \ wwwroot \ public”,因为我的视图位于公共目录中。

我认为一切正常,直到我完成第二次部署,现在部署到“site \ wwwroot \ public”的文件,以便我的视图现在必须是“site \ wwwroot \ public \ public”。

现在我正在寻找一种方法来指定与视图目录不同的部署目录。 这就是我的设置目前的样子: settings image

1 个答案:

答案 0 :(得分:1)

如果我的理解是正确的,您可以使用Azure Power Shell将新的虚拟应用程序附加到现有虚拟应用程序。使用以下代码。

# Example call: SetWebAppConfig MyResourceGroup MySite $ConfigObject
# https://github.com/davidebbo/AzureWebsitesSamples/blob/b2a3d67a90b7b2d673d68dab553f82e015333d10/PowerShell/HelperFunctions.ps1#L84-L87
Function SetWebAppConfig($ResourceGroupName, $SiteName, $ConfigObject)
{
    $WebAppApiVersion = "2015-08-01"
    Set-AzureRmResource -ResourceGroupName $ResourceGroupName -ResourceType Microsoft.Web/sites/Config -Name $SiteName/web -PropertyObject $ConfigObject -ApiVersion $WebAppApiVersion -Force
}

Login-AzureRmAccount
Select-AzureRmSubscription -SubscriptionId $subscriptionId

$website = Get-AzureRmWebApp -ResourceGroupName $resourceGroupName -Name $websiteName
$virtualApplications = $website.SiteConfig.VirtualApplications

$hash = New-Object System.Collections.ArrayList

for ($j = 0; $j -lt $virtualApplications.count; $j++) {
    $entry = @{ virtualPath = $virtualApplications[$j].VirtualPath; physicalPath = $virtualApplications[$j].PhysicalPath }
    $hash.add($entry)
}
$newEntry = @{ virtualPath = "/$siteName"; physicalPath = "site\$siteName" }
$hash.add($newEntry)


$hashProps.VirtualApplications
$virtualApps = $website.SiteConfig.VirtualApplications.Add(@{ virtualPath = "/$siteName"; physicalPath = "site\$siteName" })
$props=@{
    virtualApplications = $hash.ToArray()
}

SetWebAppConfig $resourceGroupName $websiteName $props

请参阅类似的question

注意:在VSTS中,您可以创建Azure Power Shell任务。