【问题标题】:Why Azure Devops File Copy static website not copying to root?为什么 Azure Devops 文件复制静态网站不复制到根目录?
【发布时间】:2020-07-03 18:13:50
【问题描述】:

我在将我的 Angular 应用程序部署到 Azure 存储静态网站时遇到问题。去年我创建了一个 CI/CD 管道,我使用了几个月。前几个月没有部署,今天的部署遇到了一些问题。

第一个问题是关于身份验证的,但我能够解决它。

第二个是我正在努力解决的问题。我运行发布管道,文件被复制,但不在 $web 容器根目录中,但它创建了一个“prod”文件夹,并在那里复制文件。因此,我无法打开该网站,因为它在 $web 根文件夹中搜索“index.html”文件,但显然没有找到它,因为它在 $web/prod 文件夹中。我可以打开指向 /prod URL 的文件,但它会尝试从根目录(而不是 prod 文件夹)加载所有资源,显然这些文件不存在。

我看了一些关于部署到静态 webiste 存储帐户的文章,所有文章都显示了与我正在使用的相似的 yaml。

这是我的构建管道,它在构建后发布工件:

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(System.DefaultWorkingDirectory)/dist/prod'
    ArtifactName: 'prod'
    publishLocation: 'Container'
    displayName: 'publish prod'

这是文件复制任务:

- task: AzureFileCopy@4
  displayName: 'AzureBlob File Copy'
  inputs:
    SourcePath: '$(System.DefaultWorkingDirectory)/_angularApp CI/prod'
    azureSubscription: '***'
    Destination: AzureBlob
    storage: angularApp
    ContainerName: '$web'

文件在“PublishBuildArtifact”任务之后存在,它们被复制,只是不在正确的文件夹($web 根目录)中。有人有想法吗?

谢谢

【问题讨论】:

    标签: azure azure-devops azcopy azure-static-website-hosting


    【解决方案1】:

    通常情况下,不指定Blob Prefix,会默认将指定文件夹中的内容复制到容器的根目录下。

    在我这边测试过,效果很好:

    您可以检查您的发布源目录是否包含名为prod 的文件夹,并将该文件夹复制到容器中。

    另外,我这里使用的AzureFileCopy@3版本,你可以尝试使用V3 azure copy file task。

    【讨论】:

    • 感谢您的回答,我在路径上玩了一点,但没有帮助,然后将版本更改为 v3,现在可以正常工作了。
    • 更改为 V3 也为我修复了它。谢谢你,这很烦人
    猜你喜欢
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 2020-05-15
    • 2022-11-28
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    相关资源
    最近更新 更多