Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Toto není nejnovější verze tohoto článku. Aktuální verzi najdete ve verzi .NET 10 tohoto článku.
Výstraha
Tato verze ASP.NET Core již není podporována. Pro více informací se podívejte na Zásady podpory .NET a .NET Core. Aktuální vydání tohoto článku najdete v verzi .NET 9.
Tento článek vysvětluje, jak hostovat a nasazovat aplikace Blazor.
Publikování aplikace
Aplikace se publikují pro nasazení v konfiguraci vydané verze.
Poznámka:
Publikujte hostované Blazor WebAssemblyřešení z Server projektu.
- V nabídce Sestavení vyberte příkaz Publikovat {APPLICATION}, kde
{APPLICATION}je zástupný název aplikace. - Vyberte cíl publikování. Pokud chcete publikovat místně, vyberte Složku. Vyberte Další.
- Při místním publikování přijměte výchozí umístění složky nebo zadejte jiné umístění. Chcete-li profil uložit, vyberte Dokončit . Vyberte Zavřít.
- Pokud chcete před publikováním aplikace vyčistit složku publikování cíle, vyberte Zobrazit všechna nastavení. VyberteMožnosti> publikování souboru Nastavení>Odstranit všechny existující soubory před publikováním. Vyberte Uložit.
- Vyberte tlačítko Publikovat.
Publikování aplikace aktivuje obnovení závislostí projektu a sestavení projektu před vytvořením prostředků pro nasazení. V rámci procesu sestavení se odeberou nepoužívané metody a sestavení, aby se snížila velikost a načítání aplikace.
Vyprázdnění cílové složky publikování
Při použití dotnet publish příkazu v příkazovém prostředí k publikování aplikace příkaz vygeneruje potřebné soubory pro nasazení na základě aktuálního stavu projektu a umístí soubory do zadané výstupní složky. Příkaz před publikováním aplikace automaticky nevyčistí cílovou složku.
Pokud chcete před publikováním aplikace automaticky vyprázdnit cílovou složku, přidejte do souboru projektu aplikace () následující cíl MSBuild (.csproj) pod kořenový <Project> prvek:
<Target Name="_RemovePublishDirBeforePublishing" BeforeTargets="BeforePublish">
<RemoveDir Directories="$(PublishDir)" Condition="'$(PublishDir)' != ''" />
</Target>
Výchozí umístění publikování
-
Blazor Web App: Aplikace se publikuje do složky
/bin/Release/{TARGET FRAMEWORK}/publish, kde zástupný symbol{TARGET FRAMEWORK}je cílová architektura. Odešlete obsah složkypublishna server. - Samostatná Blazor WebAssemblyaplikace: Aplikace se publikuje do
bin/Release/{TARGET FRAMEWORK}/publishsložky nebobin/Release/{TARGET FRAMEWORK}/browser-wasm/publishsložky. Pokud chcete nasadit aplikaci jako statický web, zkopírujte obsahwwwrootsložky do hostitele statického webu.
-
Blazor Server: Aplikace se publikuje do složky
/bin/Release/{TARGET FRAMEWORK}/publish, kde zástupný symbol{TARGET FRAMEWORK}je cílová architektura.. Odešlete obsah složkypublishna server. - Blazor WebAssembly
- Samostatná aplikace: Aplikace se publikuje do
/bin/Release/{TARGET FRAMEWORK}/publishsložky nebobin/Release/{TARGET FRAMEWORK}/browser-wasm/publishsložky. Pokud chcete nasadit aplikaci jako statický web, zkopírujte obsahwwwrootsložky do hostitele statického webu. - Hostované: Aplikační server ASP.NET Core a klientská Blazor WebAssembly aplikace jsou publikovány do
/bin/Release/{TARGET FRAMEWORK}/publishsložky serverové aplikace spolu se statickými webovými prostředky klientské aplikace. Odešlete obsah složkypublishna server.
- Samostatná aplikace: Aplikace se publikuje do
služba IIS
Pokud chcete hostovat aplikaci ve službě Blazor IIS, projděte si následující zdroje informací:
- Hostování služby IIS
- Hostování a nasazení ASP.NET Core aplikací na straně Blazor serveru: Blazor Web App (.NET 8 nebo novější) a Blazor Server aplikací (.NET 7 nebo starší) běžících na IIS, včetně IIS s virtuálními počítači Azure, které používají Windows OS, a Azure App Service.
- Hostování a nasazování ASP.NET Core Blazor WebAssembly se službou IIS: Samostatné Blazor WebAssembly aplikace (všechny verze .NET) a hostované Blazor WebAssembly aplikace (.NET 7 nebo starší).
- Hostování dílčích aplikací služby IIS
- Před publikováním aplikace postupujte podle pokynů základní cesty aplikace . Příklady používají základní cestu aplikace a ukazují, jak
/CoolAppz nastavení aplikace nebo jiných poskytovatelů konfigurace. - Postupujte podle pokynů ke konfiguraci dílčí aplikace v rozšířené konfiguraci. Cesta ke složce dílčí aplikace na výchozím webu se stane její virtuální cestou. Pro základní cestu aplikace jako
/CoolAppje Blazor aplikace umístěna do složky nazvanéCoolApppod kořenovým webem a podaplikace převezme virtuální cestu/CoolApp.
- Před publikováním aplikace postupujte podle pokynů základní cesty aplikace . Příklady používají základní cestu aplikace a ukazují, jak
Sdílení fondu aplikací mezi aplikacemi ASP.NET Core se nepodporuje, včetně aplikací Blazor . Při hostování se službou IIS používejte jeden fond aplikací pro každou aplikaci a vyhněte se použití virtuálních adresářů služby IIS pro hostování více aplikací.
Jeden nebo více Blazor WebAssembly aplikací hostovaných aplikací ASP.NET Core, označované jako hostované Blazor WebAssembly řešení, se podporuje pro jeden fond aplikací. Nedoporučujeme ale ani nepodporujeme přiřazování jednoho fondu aplikací k více hostovaným Blazor WebAssembly řešením nebo v hostitelských scénářích dílčích aplikací.
Další informace o řešeních naleznete v tématu Nástroje pro ASP.NET Core Blazor.
Podpora javascriptového bundleru
Běhové prostředí Blazor spoléhá na soubory JavaScript (JS), běhové prostředí .NET zkompilované do kódu WebAssembly a spravovaná sestavení zabalená jako soubory WebAssembly. Když je Blazor aplikace sestavena, Blazor modul runtime závisí na těchto souborech z různých umístění sestavení. Vzhledem k tomuto omezení Blazornení výstup sestavení kompatibilní s JS bundlery, jako jsou Gulp, Webpack a Rollup.
Pokud chcete vytvořit výstup sestavení kompatibilní s JS bundlery během publikování, nastavte WasmBundlerFriendlyBootConfig vlastnost MSBuild do true souboru projektu aplikace:
<WasmBundlerFriendlyBootConfig>true</WasmBundlerFriendlyBootConfig>
Důležité
Tato funkce vytváří výstup kompatibilní pro bundler pouze při publikaci aplikace.
Výstup není přímo spustitelný v prohlížeči, ale nástroje ho můžou využívat JS ke sbalování JS souborů se zbytkem skriptů zadaných vývojářem.
Pokud WasmBundlerFriendlyBootConfig je povoleno, vytvořené JS obsahuje import direktivy pro všechny prostředky v aplikaci, což zviditelňuje závislosti pro bundler. Mnoho prostředků není možné načíst v prohlížeči, ale nástroje pro balíčkování je obvykle možné nakonfigurovat tak, aby rozpoznaly prostředky podle jejich typu souboru, pro zajištění načtení. Podrobnosti o tom, jak nakonfigurovat váš bundler, najdete v dokumentaci k sadě.
Poznámka:
Možnost seskupení výstupu kompilace by měla být zajištěna mapováním importů na jednotlivá místa souborů pomocí vlastního plug-inu pro balíkovač. V tuto chvíli takový modul plug-in neposkytujeme.
Poznámka:
Nahrazením pluginu files za url jsou všechny soubory aplikace JS, včetně runtime prostředí pro WebAssembly (zakódováno v base64 v Blazor), spojeny do výstupu. Velikost souboru je výrazně větší (například 300% větší), než když jsou soubory upravovány pomocí pluginu files, takže nedoporučujeme používat plugin url jako obecný postup při vytváření výstupu optimalizovaného pro zpracování bundlerem JS.
Následující ukázkové aplikace jsou založené na Rollup. Podobné koncepty se uplatní při použití jiných JS nástrojů pro balení.
Ukázkové ukázkové aplikace pro Blazor WebAssembly aplikaci React (BlazorWebAssemblyReact) a .NET na WebAssembly v aplikaci React (DotNetWebAssemblyReact) pro .NET 10 nebo novější jsou k dispozici v Blazor ukázkovém úložišti GitHub (dotnet/blazor-samples).
Aspekty Blazor WebAssembly ukládání do mezipaměti se vztahují na Blazor Web App
Blazor Pokyny pro ukládání do mezipaměti a HTTP cache v uzlu Blazor WebAssembly se zaměřují na samostatné Blazor WebAssembly aplikace, ale několik aspektů klientského cachování v těchto článcích platí také pro Blazor Web App režimy interaktivního WebAssembly nebo interaktivního automatického vykreslování. Pokud na Blazor Web App straně klienta, která vykresluje obsah, narazíte na problém se statickým prostředkem nebo problém s ukládáním balíčku do mezipaměti, projděte si pokyny v těchto článcích, které tento problém řeší.
Blazor Server
MapFallbackToPage konfigurace
Tato část platí jenom pro Blazor Server aplikace. MapFallbackToPage a Blazor Web App aplikace nejsou podporovány v Blazor WebAssembly.
Ve scénářích, kdy aplikace vyžaduje samostatnou oblast s vlastními prostředky a Razor komponentami:
Vytvořte složku ve složce aplikace
Pagespro uložení prostředků. Například oddíl správce aplikace se vytvoří v nové složce s názvemAdmin(Pages/Admin).Vytvořte kořenovou stránku (
_Host.cshtml) pro oblast. Například vytvořtePages/Admin/_Host.cshtmlsoubor z hlavní kořenové stránky aplikace (Pages/_Host.cshtml). Na stránce Správce@pagenezadávejte direktivu_Host.Přidejte rozložení do složky oblasti (například
Pages/Admin/_Layout.razor). V rozložení pro samostatnou oblast nastavte<base>značkuhreftak, aby odpovídala složce oblasti (například<base href="/Admin/" />). Pro demonstrační účely přidejte na stránce statické prostředky~/. Například:~/css/bootstrap/bootstrap.min.css~/css/site.css-
~/BlazorSample.styles.css(obor názvů ukázkové aplikace jeBlazorSample) -
~/_framework/blazor.server.js(Blazor skript)
Pokud má oblast mít vlastní složku statických souborů, přidejte složku a zadejte její umístění k middlewaru pro statické soubory (například
Program.cs,app.UseStaticFiles("/Admin/wwwroot")).Do složky oblasti jsou přidány komponenty Razor. Minimálně přidejte komponentu
Indexdo složky oblasti se správnou@pagedirektivou pro danou oblast. Můžete například přidatPages/Admin/Index.razorsoubor na základě výchozíhoPages/Index.razorsouboru aplikace. Označte oblast Správce jako šablonu trasy v horní části souboru (@page "/admin"). Podle potřeby přidejte další komponenty. NapříkladPages/Admin/Component1.razors příkazem@pagea šablonou trasy@page "/admin/component1.V
Program.cs, zavolejte MapFallbackToPage pro cestu požadavku oblasti bezprostředně před cestou kořenové stránky záložky na stránku_Host.... app.UseRouting(); app.MapBlazorHub(); app.MapFallbackToPage("~/Admin/{*clientroutes:nonfile}", "/Admin/_Host"); app.MapFallbackToPage("/_Host"); app.Run();