Почему статический веб-сайт Azure Devops File Copy не копируется в корневой каталог?
У меня проблема с развертыванием моего приложения angular на статическом веб-сайте хранилища Azure. В прошлом году я создал конвейер CI/CD и использовал его несколько месяцев. В последние несколько месяцев развертывания не было, а с сегодняшним развертыванием я столкнулся с некоторыми проблемами.
Первая проблема касалась аутентификации, но мне удалось ее решить.
Со вторым я борюсь. Я запускаю конвейер выпуска, и файлы копируются, но не в корень $web-контейнера, но он создает папку prod и копирует туда файлы. Из-за этого я не могу открыть веб-сайт, поскольку он ищет файл index.html в корневой папке $web и, очевидно, не находит его, так как он находится в папке $web/prod. Я могу открыть файл, идущий по URL-адресу / prod, но затем он пытается загрузить все ресурсы из корня (а не из папки prod), и, очевидно, файлов там нет.
Я просмотрел несколько статей о развертывании в статической учетной записи хранения веб-сайтов, и все они показали, что ямлы схожи с тем, что я использую.
Вот мой конвейер сборки, который публикует артефакты после сборки:
- 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 root). Есть у кого-нибудь идеи?
Благодарность
1 ответ
Обычно, без указания префикса Blob, содержимое указанной папки по умолчанию копируется в корень контейнера.
Проверено на моей стороне, работает хорошо:
Вы можете проверить, содержит ли исходный каталог публикации папку с именемprod
и скопируйте эту папку в контейнер.
Кроме того, в версииAzureFileCopy@ 3, которую я использовал здесь, вы можете попробовать использовать задачу копирования файла AzureV3.