Поделиться через


Размещайте и развертывайте автономный ASP.NET Core Blazor WebAssembly с помощью GitHub Pages

Примечание.

Это не последняя версия этой статьи. Для текущего релиза смотрите версию .NET 9 этой статьи.

Предупреждение

Эта версия ASP.NET Core больше не поддерживается. Дополнительные сведения см. в политике поддержки .NET и .NET Core. Для текущего релиза смотрите версию .NET 9 этой статьи.

Это важно

Эта информация относится к предварительному выпуску продукта, который может быть существенно изменен до его коммерческого выпуска. Корпорация Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых в отношении информации, предоставленной здесь.

Для текущего релиза смотрите версию .NET 9 этой статьи.

В этой статье объясняется, как размещать и развертывать автономный Blazor WebAssembly сервер с помощью GitHub Pages.

В следующем руководстве по GitHub Pages для развёртывания приложений Blazor WebAssembly демонстрируются концепции с интерактивным инструментом, развернутым на GitHub Pages. Средство используется авторами документации по ASP.NET Core для создания ссылок XREF на документацию API для разметки статьи.

Параметры GitHub Pages

  • Действия >общие
    • Разрешения действий
      • Разрешить корпоративные действия и выбрать некорпоративные действия и повторно используемые рабочие процессы> Включено (выбрано)
      • Разрешить действия, созданные GitHub> Включено (выбрано)
      • Разрешить действия и повторно используемые рабочие процессы>stevesandersonms/ghaction-rewrite-base-href@{SHA HASH},
    • Разрешения рабочего процесса>Чтение содержимого репозитория и пакетов
  • Pages>Сборка и развертывание
    • Исходный код>GitHub Actions
    • Выбранный рабочий процесс: Статический HTML, и создайте скрипт действия статического развертывания на основе файла Xref Generator static.yml для инструмента генерации Xref. Конфигурация в файле описана в следующем разделе.
    • личный домен. Задайте, если вы планируете использовать личный домен, который не рассматривается в этом руководстве. Дополнительные сведения см. в статье Настройка личного домена для сайта GitHub Pages.
    • Обеспечить использование HTTPS> Включено (выбрано)

† Хэш SHA ({SHA HASH} заполнитель) представляет хэш SHA для последней stevesandersonms/ghaction-rewrite-base-href версии GitHub Actions. Закрепление на определенной версии снижает риск того, что скомпрометированный последний выпуск с использованием обозначения версии, такого как v1, может поставить под угрозу развертывание. Периодически обновите SHA до последнего выпуска для последних функций и исправлений ошибок.

Чтобы получить хэш SHA, выполните следующие действия.

  1. Перейдите к репозиториюSteveSandersonMS/ghaction-rewrite-base-href Action GitHub.
  2. Выберите выпуск в правой части страницы в разделе "Выпуски".
  3. Найдите и выберите короткий хэш SHA (например, 5b54862).
  4. Либо:
    • Скопируйте полный SHA из URL в строке адреса браузера.
    • Нажмите кнопку копирования справа на странице Копировать, чтобы поместить SHA в буфер обмена.

Дополнительные сведения см. в статье "Использование предварительно созданных стандартных блоков в рабочем процессе: использование SHAs (документация по GitHub)".

Конфигурация скрипта статического развертывания

Генератор Xref файл static.yml

Настройте следующие записи в скрипте для развертывания:

  • Каталог публикации (PUBLISH_DIR): Используйте путь к папке репозитория, в котором публикуется приложение Blazor WebAssembly. Приложение компилируется под определённую версию .NET, и сегмент пути для этой версии должен совпадать. Пример: BlazorWebAssemblyXrefGenerator/bin/Release/net9.0/publish/wwwroot является путем для приложения, использующего net9.0идентификатор целевой платформы (TFM) для SDK .NET 9.
  • Путь отправки (on:push:paths): установите путь отправки для соответствия папке репозитория приложения с подстановочным знаком **. Пример: BlazorWebAssemblyXrefGenerator/**.
  • Версия пакета SDK для .NET (dotnet-version с помощью actions/setup-dotnet действия): на данный момент нет способа установить версию на «последнюю» (см. Разрешить указывать «последнюю» в качестве dotnet-version (actions/setup-dotnet #497), чтобы поддержать запрос на эту функцию). Задайте версию пакета SDK по крайней мере так же, как и версию платформы приложения.
  • Путь публикации (командаdotnet publish): задайте путь к папке репозитория приложения. Пример: dotnet publish BlazorWebAssemblyXrefGenerator -c Release.
  • Base HREF (base_href для SteveSandersonMS/ghaction-rewrite-base-href Действия): задайте хэш SHA для последней версии Действия (см. инструкцию в разделе настройки GitHub Pages). Задайте базовый href для приложения в имя репозитория. Пример. Владелец репозитория Blazor примера — dotnet. Название репозитория образца Blazor — blazor-samples. При развертывании средства генератора Xref на GitHub Pages его веб-адрес основан на имени репозитория (https://dotnet.github.io/blazor-samples/). Базовый href приложения — это /blazor-samples/, который задается как base_href для действия ghaction-rewrite-base-href, чтобы записать в тег wwwroot/index.html<base> приложения при его развертывании. Дополнительные сведения см. в разделе Базовый путь к приложениям ASP.NET CoreBlazor.

Сервер Ubuntu с размещением в GitHub (последняя версия) имеет предварительно установленную версию пакета SDK для .NET. Вы можете удалить шаг действия actions/setup-dotnet из скрипта static.yml, если предварительно установленного пакета SDK для .NET достаточно для компиляции приложения. Чтобы определить пакет SDK для .NET, установленный для ubuntu-latest:

  1. Перейдите в раздел .
  2. Найдите изображение ubuntu-latest, которое является первой строкой таблицы.
  3. Выберите ссылку в столбце Included Software.
  4. Прокрутите вниз до раздела инструментов .NET, чтобы просмотреть пакет SDK для .NET Core, установленный с изображением.

Заметки о развертывании

Действие GitHub по умолчанию, которое развертывает страницы, пропускает развертывание папок, начинающихся с подчеркивания, например, папку с именем _framework. Чтобы развернуть папки, начинающиеся с символа подчеркивания, добавьте пустой файл .nojekyll в корневой каталог репозитория приложения. Пример: файл генератора Xref.nojekyll

Выполните этот шаг перед первым развертыванием приложения: Git рассматривает файлы JavaScript (JS), такие как blazor.webassembly.js, как текст и преобразует окончания строк из CRLF (возврат каретки и перевод строки) в LF (перевод строки) в процессе развертывания. Эти изменения в файлах JS образуют другие хэши файлов, которые Blazor отправляет клиенту. Несоответствия приводят к сбоям проверки целостности на клиентской системе. Одним из подходов к решению этой проблемы является добавление файла .gitattributes со строкой *.js binary перед добавлением ресурсов приложения в ветвь Git. Строка *.js binary настраивает Git относиться к JS файлам как к двоичным, что предотвращает их обработку в конвейере развертывания и приводит к тому, что проверка целостности на стороне клиента проходит. Дополнительные сведения см. в разделе ASP.NET Кэширование пакетов .NET Core Blazor WebAssembly и сбои проверки целостности. Пример: файл генератора Xref.gitattributes

Чтобы обрабатывать перезаписи URL-адресов на основе одностраничных приложений для страниц GitHub (репозиторийrafrex/spa-github-pages GitHub):

GitHub Pages изначально не поддерживает использование сжатых ресурсов Brotli. Чтобы использовать Brotli: