Compartilhar via


Hospedar e implantar o ASP.NET Core Blazor

Observação

Esta não é a versão mais recente deste artigo. Para a versão atual, consulte a versão .NET 9 deste artigo.

Aviso

Esta versão do ASP.NET Core não tem mais suporte. Para obter mais informações, consulte a Política de Suporte do .NET e do .NET Core. Para a versão atual, consulte a versão .NET 9 deste artigo.

Importante

Essas informações relacionam-se ao produto de pré-lançamento, que poderá ser substancialmente modificado antes do lançamento comercial. A Microsoft não oferece nenhuma garantia, explícita ou implícita, quanto às informações fornecidas aqui.

Para a versão atual, consulte a versão .NET 9 deste artigo.

Este artigo explica como hospedar e implantar aplicativos Blazor.

Publicar o aplicativo

Os aplicativos são publicados para implantação na configuração de versão.

Observação

Publique uma Blazor WebAssemblysolução hospedada do projeto Server.

  1. Selecione o comando Publicar {APPLICATION} no menu Compilar, em que o espaço reservado {APPLICATION} é o nome do aplicativo.
  2. Selecione o botão destino de publicação. Para publicar localmente, selecione Pasta.
  3. Aceite o local padrão no campo Escolher uma pasta ou especifique um local diferente. Selecione o botão Publish.

Publicar o aplicativo dispara uma restauração das dependências do projeto e compila o projeto antes de criar os ativos para implantação. Como parte do processo de build, os assemblies e métodos não usados são removidos para reduzir o tamanho de download do aplicativo e os tempos de carregamento.

Locais de publicação padrão

  • Blazor Web App: O aplicativo é publicado na pasta /bin/Release/{TARGET FRAMEWORK}/publish, em que o {TARGET FRAMEWORK} espaço reservado é a estrutura de destino. Implante o conteúdo da pasta publish no host.
  • AutônomoBlazor WebAssembly: o aplicativo é publicado na pasta bin/Release/{TARGET FRAMEWORK}/publish ou na pasta bin/Release/{TARGET FRAMEWORK}/browser-wasm/publish. Para implantar o aplicativo como um site estático, copie o conteúdo da pasta wwwroot para o host do site estático.
  • Blazor Server: o aplicativo é publicado na pasta /bin/Release/{TARGET FRAMEWORK}/publish, em que o {TARGET FRAMEWORK} espaço reservado é a estrutura de destino. Implante o conteúdo da pasta publish no host.
  • Blazor WebAssembly
    • Autônomo: o aplicativo é publicado na pasta /bin/Release/{TARGET FRAMEWORK}/publish ou bin/Release/{TARGET FRAMEWORK}/browser-wasm/publish. Para implantar o aplicativo como um site estático, copie o conteúdo da pasta wwwroot para o host do site estático.
    • Hospedado: o aplicativo do servidor ASP.NET Core e o aplicativo cliente Blazor WebAssembly são publicados na pasta /bin/Release/{TARGET FRAMEWORK}/publish do aplicativo do servidor, juntamente com quaisquer ativos web estáticos do aplicativo cliente. Implante o conteúdo da pasta publish no host.

IIS

Para hospedar um aplicativo Blazor no IIS, consulte os seguintes recursos:

Não há suporte para o compartilhamento de um pool de aplicativos entre aplicativos ASP.NET Core, inclusive para aplicativos Blazor. Use um pool de aplicativos por aplicativo ao hospedar com o IIS e evite o uso dos diretórios virtuais do IIS para hospedar vários aplicativos.

Um ou mais aplicativos Blazor WebAssembly hospedados por um aplicativo ASP.NET Core, conhecido como uma solução Blazor WebAssembly hospedada, têm suporte para um pool de aplicativos. No entanto, não recomendamos nem damos suporte à atribuição de um só pool de aplicativos a várias soluções Blazor WebAssembly hospedadas ou em cenários de hospedagem de subaplicativos.

Para obter mais informações sobre as soluções, consulte Ferramentas para ASP.NET Core Blazor.

Configuração de Blazor ServerMapFallbackToPage

Esta seção só se aplica a aplicativos Blazor Server. MapFallbackToPage não é compatível em Blazor Web Apps e aplicativos do Blazor WebAssembly.

Em cenários em que um aplicativo requer uma área separada com recursos personalizados e componentes Razor:

  • Crie uma pasta dentro da pasta Pages do aplicativo para manter os recursos. Por exemplo, uma seção de administrador de um aplicativo é criada em uma nova pasta chamada Admin (Pages/Admin).

  • Crie uma página raiz (_Host.cshtml) para a área. Por exemplo, crie um arquivo Pages/Admin/_Host.cshtml na página raiz principal do aplicativo (Pages/_Host.cshtml). Não forneça uma diretiva @page na página _Host do Administrador.

  • Adicione um layout à pasta da área (por exemplo, Pages/Admin/_Layout.razor). No layout da área separada, defina a marca <base>href para corresponder à pasta da área (por exemplo, <base href="/Admin/" />). Para fins de demonstração, adicione ~/ aos recursos estáticos na página. Por exemplo:

    • ~/css/bootstrap/bootstrap.min.css
    • ~/css/site.css
    • ~/BlazorSample.styles.css (o namespace do aplicativo de exemplo é BlazorSample)
    • ~/_framework/blazor.server.js (script Blazor)
  • Se a área deve ter a própria pasta de ativo estático, adicione a pasta e especifique seu local para o Middleware de Arquivo Estático em Program.cs (por exemplo, app.UseStaticFiles("/Admin/wwwroot")).

  • Componentes Razor são adicionados à pasta da área. No mínimo, adicione um componente Index à pasta da área com a diretiva @page correta para a área. Por exemplo, adicione um arquivo Pages/Admin/Index.razor com base no arquivo Pages/Index.razor padrão do aplicativo. Indique a área do Administrador como o modelo de rota na parte superior do arquivo (@page "/admin"). Adicione componentes adicionais conforme necessário. Por exemplo, Pages/Admin/Component1.razor com uma diretiva @page e um modelo de rota de @page "/admin/component1.

  • Em Program.cs, chame MapFallbackToPage para o caminho de solicitação da área imediatamente antes do caminho da página raiz de fallback para a página _Host:

    ...
    app.UseRouting();
    
    app.MapBlazorHub();
    app.MapFallbackToPage("~/Admin/{*clientroutes:nonfile}", "/Admin/_Host");
    app.MapFallbackToPage("/_Host");
    
    app.Run();