Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание.
Это не последняя версия этой статьи. В текущем выпуске смотрите версию .NET 9 этой статьи.
Предупреждение
Эта версия ASP.NET Core больше не поддерживается. Дополнительные сведения см. в политике поддержки .NET и .NET Core. В текущем выпуске, см. версию .NET 9 этой статьи.
Внимание
Эта информация относится к предварительному выпуску продукта, который может быть существенно изменен до его коммерческого выпуска. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
В этом релизе см. версию .NET 9 этой статьи.
В этой статье объясняется, как размещать и развертывать Blazor приложения.
Публикация приложения
Приложения публикуются для развертывания в конфигурации 'Release'.
- Выберите команду "Опубликовать {APPLICATION}" в меню "Сборка", где
{APPLICATION}
— заполнитель имени приложения. - Выберите целевой объект публикации. Чтобы опубликовать объект в локальной среде, выберите папку.
- Оставьте расположение по умолчанию в поле выбора папки или укажите другое расположение. Выберите кнопку
Publish
.
Публикация приложения активирует восстановление зависимостей проекта и выполняет сборку проекта, прежде чем создавать ресурсы для развертывания. В ходе процесса построения удаляются неиспользуемые методы и сборки, чтобы уменьшить размер скачиваемого приложения и время загрузки.
Места публикации
-
Blazor Web App: Приложение публикуется в папке
/bin/Release/{TARGET FRAMEWORK}/publish
, где{TARGET FRAMEWORK}
обозначает целевой фреймворк. Разверните содержимое папкиpublish
на узле. - Автономное Blazor WebAssembly: приложение опубликовано в папку
bin\Release\{TARGET FRAMEWORK}\browser-wasm\publish\
. Чтобы развернуть приложение как статический сайт, скопируйте содержимое папкиwwwroot
на хостинг статического сайта.
-
Blazor Server: приложение публикуется в папке
/bin/Release/{TARGET FRAMEWORK}/publish
, где шаблон{TARGET FRAMEWORK}
используется в качестве целевого фреймворка. Разверните содержимое папкиpublish
на узле. - Blazor WebAssembly
- Автономный: приложение публикуется в
/bin/Release/{TARGET FRAMEWORK}/publish/wwwroot
папке илиbin\Release\{TARGET FRAMEWORK}\browser-wasm\publish
в зависимости от версии пакета SDK, используемого для публикации приложения. Чтобы развернуть приложение как статический сайт, скопируйте содержимое папкиwwwroot
на хостинг статического сайта. - Хостинг: клиентское Blazor WebAssembly приложение публикуется в
/bin/Release/{TARGET FRAMEWORK}/publish/wwwroot
папке серверного приложения вместе с другими статическими веб-ресурсами клиентского приложения. Разверните содержимое папкиpublish
на узле.
- Автономный: приложение публикуется в
IIS
Сведения о размещении Blazor приложения в IIS см. в следующих ресурсах:
- Размещение IIS
- Размещение и развертывание серверных приложений ASP.NET на стороне сервера: серверные приложения, работающие в службах IIS, включая службы IIS с виртуальными машинами Azure под управлением ОС Windows и службы приложений Azure.
-
Узел и развертывание ASP.NET CoreBlazor WebAssembly: включает дополнительные рекомендации для Blazor WebAssembly приложений, размещенных в службах IIS, включая размещение статических сайтов, пользовательские
web.config
файлы, перезапись URL-адресов, вложенные приложения, сжатие и размещение статических файлов в службе хранилища Azure. - Хостинг подприложений IIS
- Следуйте инструкциям по базовому пути приложения перед публикацией приложения. В примерах используется базовый путь
/CoolApp
, и показано, как определить его из настроек приложения или других поставщиков конфигурации. - Следуйте инструкциям по настройке вложенных приложений в расширенной конфигурации. Путь к папке дочернего приложения на корневом сайте становится виртуальным путем дочернего приложения. Для базового пути приложения
/CoolApp
приложение Blazor размещается в папке с именемCoolApp
в корневом сайте, а подприложение получает виртуальный путь/CoolApp
.
- Следуйте инструкциям по базовому пути приложения перед публикацией приложения. В примерах используется базовый путь
Совместное использование пула приложений среди приложений ASP.NET Core не поддерживается, включая приложения Blazor. Используйте один пул приложений для каждого приложения при размещении с IIS и избегайте использования виртуальных каталогов IIS для размещения нескольких приложений.
Одно или несколько приложений Blazor WebAssembly, размещенных приложением ASP.NET Core, которое называется размещенным решением Blazor WebAssembly, поддерживаются для одного пула приложений. Однако мы не рекомендуем и не поддерживаем назначение одного пула приложений нескольким размещенным решениям Blazor WebAssembly или в сценариях хостинга подприложений.
Дополнительные сведения о решениях см. в статье Инструментарий для ASP.NET CoreBlazor.
Blazor ServerКонфигурация MapFallbackToPage
Этот раздел применяется только к приложениям Blazor Server . MapFallbackToPage не поддерживается ни в Blazor Web Appах, ни в Blazor WebAssembly приложениях.
В сценариях, где приложению требуется отдельная область с настраиваемыми ресурсами и компонентами Razor, выполните приведенные ниже действия.
Создайте папку в папке
Pages
приложения для хранения ресурсов. Например, раздел администратора приложения создается в новой папке с именемAdmin
(Pages/Admin
).Создайте корневую страницу (
_Host.cshtml
) для области. Например, создайте файлPages/Admin/_Host.cshtml
на основе основной корневой страницы приложения (Pages/_Host.cshtml
). Не указывайте директиву@page
на странице_Host
администратора.Добавьте макет к папке области (например,
Pages/Admin/_Layout.razor
). В макете для отдельной области задайте тег<base>
href
в соответствии с папкой области (например,<base href="/Admin/" />
). В демонстрационных целях добавьте~/
к статическим ресурсам на странице. Например:~/css/bootstrap/bootstrap.min.css
~/css/site.css
-
~/BlazorSample.styles.css
(пространство имен для примера приложения —BlazorSample
) -
~/_framework/blazor.server.js
(скрипт Blazor)
Если область должна иметь собственную папку со статическими файлами, добавьте папку и укажите её расположение в промежуточном ПО для статических файлов в
Program.cs
(например,app.UseStaticFiles("/Admin/wwwroot")
).Компоненты Razor добавляются в папку области. Как минимум, добавьте компонент
Index
в папку области с правильной директивой@page
для области. Например, добавьте файлPages/Admin/Index.razor
на основе заданного по умолчанию файлаPages/Index.razor
приложения. Укажите область администратора в качестве шаблона маршрута в верхней части файла (@page "/admin"
). Добавьте дополнительные компоненты по мере необходимости. Например,Pages/Admin/Component1.razor
с директивой@page
и шаблоном маршрута@page "/admin/component1
.В
Program.cs
вызовите MapFallbackToPage для пути запроса области сразу перед путем резервной корневой страницы до страницы_Host
:... app.UseRouting(); app.MapBlazorHub(); app.MapFallbackToPage("~/Admin/{*clientroutes:nonfile}", "/Admin/_Host"); app.MapFallbackToPage("/_Host"); app.Run();
ASP.NET Core