При открытии статического веб-сайта в хранилище Azure появляется экран загрузки. - PullRequest
1 голос
/ 10 июля 2019

Я размещаю приложение ReactJS в хранилище Azure, используя функцию статического веб-сайта. Используя этот скрипт:

$container = "`$web"
$context = New-AzureStorageContext -StorageAccountName $env:prSourceBranchName -StorageAccountKey "e4Nt0********dbFlEG2LN9g2i5/yQ=="
Get-ChildItem -Path $env:System_DefaultWorkingDirectory/_ClientWeb-Build-CI/ShellArtifact/out/build -File -Recurse | Set-AzureStorageBlobContent -Confirm:$false -Force -Container $container -Context $context

Я загружаю файлы из моей сборки в $ BLOB-объект хранилища Azure.

enter image description here

Когда я перехожу на URL статической страницы, я получаю экран загрузки:

enter image description here

Когда я удаляю все файлы и загружаю файл simpel index.html, я загружаю файл index.html:

https://gist.github.com/chrisvfritz/bc010e6ed25b802da7eb

EDIT

В Edge я могу открыть страницу, но Chrome и Firefox загружают экран загрузки. Но Firefox показывает немного больше информации:

enter image description here

enter image description here

Похоже, тип контента немного странный.

1 Ответ

1 голос
/ 11 июля 2019

Основная причина - неправильный тип содержимого.

Как вы уже упоминали, при ручной загрузке файла .html его тип содержимого "text/html".При использовании Set-AzureStorageBlobContent оно меняется на "application/octet-stream".

Решение заключается в том, что при использовании командлета powershell Set-AzureStorageBlobContent необходимо указать параметр -Properties, как показано ниже: -Properties @{"ContentType" = "text/html"}.

Пример кода, подобный приведенному ниже (работает на моей стороне):

$context = New-AzureStorageContext -StorageAccountName "xxx" -StorageAccountKey "xxxxx"

#note that the last "\" is necessary
$path = "D:\temp\1\"

Get-ChildItem -Path $path  -File -Recurse | `
 %{ if($_.extension -eq ".html") {Set-AzureStorageBlobContent -File $_.FullName -Blob $_.FullName.Replace($path,'')  -Container "test-1" -Context $context -Properties @{"ContentType" = "text/html"}} `
 else {Set-AzureStorageBlobContent -File $_.FullName -Blob $_.FullName.Replace($path,'') -Container "test-1" -Context $context}}

Приведенный выше код просто меняет content_type файлов с расширением .html на «text / html».Вы можете смело изменять код в соответствии со своими потребностями.

...