Více hostovaných aplikací ASP.NET Core Blazor WebAssembly
Poznámka:
Toto není nejnovější verze tohoto článku. Nejnovější verzi tohoto článku najdete ve verzi .NET 7.
Tento článek vysvětluje, jak nakonfigurovat hostované Blazor WebAssembly aplikace pro hostování více Blazor WebAssembly aplikací.
Konfigurace
Vyberte verzi tohoto článku, která odpovídá vašim požadavkům na hostování, buď hostování portů nebo domén (například:5001
/:5002
) nebo firstapp.com
secondapp.com
/směrování hostování dílčích cest (například /FirstApp
a)./SecondApp
S aktuálním výběrem hostingu se tento článek věnuje hostování portů a domén (například :5001
//firstapp.com
:5002
secondapp.com
).
V následujících příkladech:
- Název projektu hostované Blazor WebAssembly aplikace je
MultipleBlazorApps
ve složce s názvemMultipleBlazorApps
. - Tři projekty v řešení před přidání druhé klientské aplikace jsou
MultipleBlazorApps.Client
veClient
složce,MultipleBlazorApps.Server
veServer
složce aMultipleBlazorApps.Shared
veShared
složce. - Počáteční (první) klientská aplikace je výchozím projektem klienta řešení vytvořeného Blazor WebAssembly ze šablony projektu.
- Do řešení
MultipleBlazorApps.SecondClient
se přidá druhá klientská aplikace ve složce s názvemSecondClient
. - Volitelně může serverový projekt (
MultipleBlazorApps.Server
) obsluhovat stránky nebo zobrazení jako Razor aplikaci Pages nebo MVC. - První klientská aplikace je přístupná v prohlížeči na portu 5001 nebo v hostiteli
firstapp.com
. Druhá klientská aplikace je přístupná v prohlížeči na portu 5002 nebo v hostitelisecondapp.com
.
S aktuálním výběrem se tento článek věnuje hostování dílčích cest tras (například /FirstApp
a /SecondApp
).
V následujících příkladech:
- Název projektu hostované Blazor WebAssembly aplikace je
MultipleBlazorApps
ve složce s názvemMultipleBlazorApps
. - Tři projekty v řešení před přidání druhé klientské aplikace jsou
MultipleBlazorApps.Client
veClient
složce,MultipleBlazorApps.Server
veServer
složce aMultipleBlazorApps.Shared
veShared
složce. - Počáteční (první) klientská aplikace je výchozím projektem klienta řešení vytvořeného Blazor WebAssembly ze šablony projektu.
- Do řešení
MultipleBlazorApps.SecondClient
se přidá druhá klientská aplikace ve složce s názvemSecondClient
. - Volitelně může serverový projekt (
MultipleBlazorApps.Server
) obsluhovat stránky nebo zobrazení jako formální Razor aplikace Pages nebo MVC. - Obě klientské aplikace používají výchozí port definovaný souborem
MultipleBlazorApps.Server
projektuProperties/launchSettings.json
v jehoapplicationUrl
hodnotě. První klientská aplikace je přístupná v prohlížeči v dílčí cestě/FirstApp
. Druhá klientská aplikace je přístupná v prohlížeči v dílčí cestě/SecondApp
.
Příklady uvedené v tomto článku vyžadují další konfiguraci pro:
- Přístup k aplikacím přímo v ukázkových doménách hostitelů
firstapp.com
asecondapp.com
. - Certifikáty pro klientské aplikace pro povolení zabezpečení TLS/HTTPS
- Konfigurace serverové aplikace jako Razor aplikace Pages pro následující funkce:
- Razor Integrace komponent do stránek nebo zobrazení
- Prerendering Razor components.
Předchozí konfigurace jsou nad rámec tohoto článku. Další informace naleznete v následujících zdrojích:
- Články o hostování a nasazení
- Vynucení HTTPS v ASP.NET Core
- Předběžné vykreslování a integrace komponent ASP.NET Core Razor
Použijte existující hostované řešení nebo vytvořte nové hostované Blazor WebAssembly řešení ze Blazor WebAssembly šablony projektu předáním -ho|--hosted
možnosti, pokud používáte .NET CLI nebo při vytváření projektu v integrovaném vývojovém prostředí (IDE) zaškrtněte políčko ASP.NET Core Hostované v sadě Visual Studio. Blazor WebAssembly
Použijte složku pro řešení s názvem MultipleBlazorApps
a pojmenujte projekt MultipleBlazorApps
.
Vytvořte novou složku v řešení s názvem SecondClient
. Do nové složky přidejte druhou Blazor WebAssembly klientskou aplikaci s názvem MultipleBlazorApps.SecondClient
. Přidejte projekt jako samostatnou Blazor WebAssembly aplikaci. Pokud chcete vytvořit samostatnou Blazor WebAssembly aplikaci, nepředávejte -ho|--hosted
tuto možnost, pokud používáte .NET CLI nebo nepoužívejte zaškrtávací políčko ASP.NET Core Hostované , pokud používáte Visual Studio.
Proveďte v projektu následující změny MultipleBlazorApps.SecondClient
:
- Zkopírujte komponentu
FetchData
Client/Pages
(Pages/FetchData.razor
) ze složky doSecondClient/Pages
složky. Tento krok je povinný, protože samostatná Blazor WebAssembly aplikace nevolá Server kontroler projektu pro data o počasí, používá statický datový soubor. ZkopírovánímFetchData
komponenty do přidaného projektu druhá klientská aplikace také provede volání webového rozhraní API na serverové rozhraní API pro data o počasí. SecondClient/wwwroot/sample-data
Odstraňte složku, protožeweather.json
se soubor ve složce nepoužívá.
Následující tabulka popisuje složky a názvy projektů řešení po SecondClient
přidání složky a MultipleBlazorApps.SecondClient
projektu.
Fyzická složka | Název projektu | Popis |
---|---|---|
Client |
MultipleBlazorApps.Client |
Blazor WebAssembly klientská aplikace |
SecondClient |
MultipleBlazorApps.SecondClient |
Blazor WebAssembly klientská aplikace |
Server |
MultipleBlazorApps.Server |
serverová aplikace ASP.NET Core |
Shared |
MultipleBlazorApps.Shared |
Projekt sdílených zdrojů |
Projekt MultipleBlazorApps.Server
obsluhuje dvě Blazor WebAssembly klientské aplikace a poskytuje data o počasí komponentám klientských aplikací FetchData
prostřednictvím kontroleru MVC. MultipleBlazorApps.Server
Volitelně může projekt také obsluhovat stránky nebo zobrazení jako tradiční Razor aplikace Pages nebo MVC. Postup povolení obsluhy stránek nebo zobrazení najdete dále v tomto článku.
Poznámka:
Ukázka v tomto článku používá názvy statických webových FirstApp
prostředků projektu MultipleBlazorApps.Client
a SecondApp
MultipleBlazorApps.SecondClient
projektu. Názvy "FirstApp
" a "SecondApp
" jsou pouze pro demonstrační účely. Jiné názvy jsou přijatelné k rozlišení klientských aplikací, například App1
App2
/,/Client1
Client2
, 1
/2
nebo jakéhokoli podobného schématu pojmenování.
Při směrování požadavků na klientské aplikace portem nebo doménouFirstApp
SecondApp
se interně používají ke směrování požadavků a obsluhování odpovědí na statické prostředky a na adresním řádku prohlížeče se nezobrazují.
Poznámka:
Ukázka v tomto článku používá názvy statických webových FirstApp
prostředků projektu MultipleBlazorApps.Client
a SecondApp
MultipleBlazorApps.SecondClient
projektu. Názvy "FirstApp
" a "SecondApp
" jsou pouze pro demonstrační účely. Jiné názvy jsou přijatelné k rozlišení klientských aplikací, například App1
App2
/,/Client1
Client2
, 1
/2
nebo jakéhokoli podobného schématu pojmenování.
"FirstApp
" a "SecondApp
" se také zobrazují na adresní řádku prohlížeče, protože požadavky se směrují do dvou klientských aplikací pomocí těchto názvů. Podporují se další platné segmenty tras URL a segmenty tras nemusí přesně odpovídat názvům používaným k internímu směrování statických webových prostředků. Použití "FirstApp
" a "SecondApp
" pro interní směrování statických prostředků i směrování požadavků aplikace je pouze pro konvolance v příkladech tohoto článku.
V souboru projektu první klientské aplikace (MultipleBlazorApps.Client.csproj
) přidejte <StaticWebAssetBasePath>
vlastnost s <PropertyGroup>
hodnotou FirstApp
nastavení základní cesty pro statické prostředky projektu:
<StaticWebAssetBasePath>FirstApp</StaticWebAssetBasePath>
MultipleBlazorApps.SecondClient
V souboru projektu aplikace (MultipleBlazorApps.SecondClient.csproj
):
<StaticWebAssetBasePath>
Přidejte vlastnost k hodnotě<PropertyGroup>
SecondApp
:<StaticWebAssetBasePath>SecondApp</StaticWebAssetBasePath>
Přidejte odkaz na
MultipleBlazorApps.Shared
projekt pro projekt do<ItemGroup>
:<ItemGroup> <ProjectReference Include="..\Shared\MultipleBlazorApps.Shared.csproj" /> </ItemGroup>
V souboru projektu serverové aplikace (Server/MultipleBlazorApps.Server.csproj
) vytvořte odkaz na projekt pro přidanou MultipleBlazorApps.SecondClient
klientskou aplikaci v :<ItemGroup>
<ProjectReference Include="..\SecondClient\MultipleBlazorApps.SecondClient.csproj" />
V souboru serverové aplikace Properties/launchSettings.json
nakonfigurujte applicationUrl
Kestrel profil (MultipleBlazorApps.Server
) pro přístup k klientským aplikacím na portech 5001 a 5002. Pokud nakonfigurujete místní prostředí tak, aby používalo ukázkové domény, adresy URL pro applicationUrl
použití firstapp.com
a secondapp.com
nepoužívejte porty.
Poznámka:
Použití portů v této ukázce umožňuje přístup k klientským projektům v místním prohlížeči, aniž by bylo nutné konfigurovat místní hostitelské prostředí, aby webové prohlížeče mohly přistupovat k klientským aplikacím prostřednictvím konfigurací firstapp.com
hostitele a secondapp.com
. V produkčních scénářích je typickou konfigurací použití subdomén k rozlišení klientských aplikací.
Příklad:
- Porty se zahodí z konfigurace této ukázky.
- Hostitelé se změní tak, aby používali subdomény, jako
www.contoso.com
jsou návštěvníci webu aadmin.contoso.com
správci. - Další hostitele je možné zahrnout do dalších klientských aplikací a aspoň jeden další hostitel se vyžaduje, pokud je serverovou aplikací také Razor aplikace Pages nebo MVC, která obsluhuje stránky nebo zobrazení.
Pokud plánujete obsluhovat stránky nebo zobrazení ze serverové aplikace, použijte v Properties/launchSettings.json
souboru následující applicationUrl
nastavení, které umožňuje následující přístup:
- Volitelně aplikace Razor Pages nebo MVC (
MultipleBlazorApps.Server
projekt) reaguje na požadavky na portu 5000. - Odpovědi na požadavky prvního klienta (
MultipleBlazorApps.Client
projektu) jsou na portu 5001. - Odpovědi na požadavky druhého klienta (
MultipleBlazorApps.SecondClient
projektu) jsou na portu 5002.
"applicationUrl": "https://localhost:5000;https://localhost:5001;https://localhost:5002",
Pokud nemáte v úmyslu serverové aplikace obsluhovat stránky nebo zobrazení a obsluhovat Blazor WebAssembly jenom klientské aplikace, použijte následující nastavení, které povoluje následující přístup:
- První klientská aplikace reaguje na portu 5001.
- Druhá klientská aplikace reaguje na portu 5002.
"applicationUrl": "https://localhost:5001;https://localhost:5002",
V souboru serverové Program.cs
aplikace odeberte následující kód, který se zobrazí po volání UseHttpsRedirection:
Pokud plánujete obsluhovat stránky nebo zobrazení ze serverové aplikace, odstraňte následující řádky kódu:
- app.UseBlazorFrameworkFiles();
- app.MapFallbackToFile("index.html");
Pokud plánujete, aby serverová aplikace sloužila Blazor WebAssembly jenom klientským aplikacím, odstraňte následující kód:
- app.UseBlazorFrameworkFiles(); ... - app.UseRouting(); - app.MapRazorPages(); - app.MapControllers(); - app.MapFallbackToFile("index.html");
Nechte statický middleware souborů na místě:
app.UseStaticFiles();
Přidejte middleware, který mapuje požadavky na klientské aplikace. Následující příklad nakonfiguruje middleware tak, aby se spustil, když je port požadavku 5001 pro první klientskou aplikaci nebo 5002 pro druhou klientskou aplikaci, nebo hostitel požadavku je
firstapp.com
buď pro první klientskou aplikaci, nebosecondapp.com
pro druhou klientskou aplikaci.Poznámka:
Použití hostitelů (
firstapp.com
/secondapp.com
) v místním systému s místním prohlížečem vyžaduje další konfiguraci, která je nad rámec tohoto článku. Pro místní testování tohoto scénáře doporučujeme používat porty. Typické produkční aplikace jsou nakonfigurované tak, aby používaly subdomény, jakowww.contoso.com
jsou návštěvníci webu aadmin.contoso.com
správci. Se správnou konfigurací DNS a serveru, která je nad rámec tohoto článku a závisí na použitých technologiích, aplikace reaguje na požadavky na libovolné hostitele, které jsou pojmenovány v následujícím kódu.Místo, odkud
Program.cs
jste řádek odebraliapp.UseBlazorFrameworkFiles();
, umístěte následující kód:app.MapWhen(ctx => ctx.Request.Host.Port == 5001 || ctx.Request.Host.Equals("firstapp.com"), first => { first.Use((ctx, nxt) => { ctx.Request.Path = "/FirstApp" + ctx.Request.Path; return nxt(); }); first.UseBlazorFrameworkFiles("/FirstApp"); first.UseStaticFiles(); first.UseStaticFiles("/FirstApp"); first.UseRouting(); first.UseEndpoints(endpoints => { endpoints.MapControllers(); endpoints.MapFallbackToFile("/FirstApp/{*path:nonfile}", "FirstApp/index.html"); }); }); app.MapWhen(ctx => ctx.Request.Host.Port == 5002 || ctx.Request.Host.Equals("secondapp.com"), second => { second.Use((ctx, nxt) => { ctx.Request.Path = "/SecondApp" + ctx.Request.Path; return nxt(); }); second.UseBlazorFrameworkFiles("/SecondApp"); second.UseStaticFiles(); second.UseStaticFiles("/SecondApp"); second.UseRouting(); second.UseEndpoints(endpoints => { endpoints.MapControllers(); endpoints.MapFallbackToFile("/SecondApp/{*path:nonfile}", "SecondApp/index.html"); }); });
Upozorňující
Rozhraní API, které závisí na hlavičce hostitele, například HttpRequest.Host a RequireHost, podléhají potenciálnímu falšování identity klienty.
Pokud chcete zabránit falšování identity hostitele a portu, použijte jeden z následujících přístupů:
- Použijte HttpContext.Connection (ConnectionInfo.LocalPort) místo, kde jsou porty kontrolovány.
- Používejte filtrování hostitelů.
Přidejte middleware, který mapuje požadavky na klientské aplikace. Následující příklad nakonfiguruje middleware tak, aby se spustil, když je
/FirstApp
dílčí cesta požadavku určená pro první klientskou aplikaci nebo/SecondApp
druhou klientskou aplikaci.Místo, odkud
Program.cs
jste řádek odebraliapp.UseBlazorFrameworkFiles();
, umístěte následující kód:app.MapWhen(ctx => ctx.Request.Path.StartsWithSegments("/FirstApp", StringComparison.OrdinalIgnoreCase), first => { first.UseBlazorFrameworkFiles("/FirstApp"); first.UseStaticFiles(); first.UseStaticFiles("/FirstApp"); first.UseRouting(); first.UseEndpoints(endpoints => { endpoints.MapControllers(); endpoints.MapFallbackToFile("/FirstApp/{*path:nonfile}", "FirstApp/index.html"); }); }); app.MapWhen(ctx => ctx.Request.Path.StartsWithSegments("/SecondApp", StringComparison.OrdinalIgnoreCase), second => { second.UseBlazorFrameworkFiles("/SecondApp"); second.UseStaticFiles(); second.UseStaticFiles("/SecondApp"); second.UseRouting(); second.UseEndpoints(endpoints => { endpoints.MapControllers(); endpoints.MapFallbackToFile("/SecondApp/{*path:nonfile}", "SecondApp/index.html"); }); });
Nastavte základní cestu v každé klientské aplikaci:
V souboru první klientské aplikace
index.html
(Client/wwwroot/index.html
) aktualizujte<base>
hodnotu značky tak, aby odrážela dílčí cestu. Koncové lomítko je povinné:<base href="/FirstApp/" />
V souboru druhé klientské aplikace
index.html
(SecondClient/wwwroot/index.html
) aktualizujte<base>
hodnotu značky tak, aby odrážela dílčí cestu. Koncové lomítko je povinné:<base href="/SecondApp/" />
Další informace najdete UseStaticFilesv tématu ASP.NET Základní Blazor statické soubory.
Další informace o UseBlazorFrameworkFiles
těchto MapFallbackToFile
zdrojích najdete v následujících zdrojích informací:
- Microsoft.AspNetCore.Builder.ComponentsWebAssemblyApplicationBuilderExtensions.UseBlazorFrameworkFiles (referenční zdroj)
- Microsoft.AspNetCore.Builder.StaticFilesEndpointRouteBuilderExtensions.MapFallbackToFile (referenční zdroj)
Poznámka:
Odkazy na dokumentaci k referenčnímu zdroji .NET obvykle načítají výchozí větev úložiště, která představuje aktuální vývoj pro příští verzi .NET. Pokud chcete vybrat značku pro konkrétní verzi, použijte rozevírací seznam pro přepnutí větví nebo značek. Další informace najdete v tématu Jak vybrat značku verze zdrojového kódu ASP.NET Core (dotnet/AspNetCore.Docs #26205).
Požadavky z klientských aplikací do rozhraní API serveru jsou buď do /WeatherForecast
/FirstApp/WeatherForecast
, nebo /SecondApp/WeatherForecast
v závislosti na tom, do které klientské aplikace požadavek odešle. Proto trasy kontroleru, které vrací data o počasí z rozhraní API serveru, vyžadují úpravu tak, aby zahrnovaly segmenty cesty.
V kontroleru předpovědi počasí serverové aplikace (Controllers/WeatherForecastController.cs
) nahraďte stávající trasu ([Route("[controller]")]
) WeatherForecastController
následujícími trasami, které berou v úvahu cesty požadavků klienta:
[Route("FirstApp/[controller]")]
[Route("SecondApp/[controller]")]
Pokud plánujete obsluhovat stránky ze serverové aplikace, přidejte Index
Razor stránku do Pages
složky serverové aplikace:
Pages/Index.cshtml
:
@page
@model MultipleBlazorApps.Server.Pages.IndexModel
@{
ViewData["Title"] = "Home";
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Home</title>
</head>
<body>
<div class="main">
<div class="content px-4">
<div>
<h1>Welcome</h1>
<p>Hello from Razor Pages!</p>
</div>
</div>
</div>
</body>
</html>
Pages/Index.cshtml.cs
:
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace MultipleBlazorApps.Server.Pages;
public class IndexModel : PageModel
{
public void OnGet()
{
}
}
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace MultipleBlazorApps.Server.Pages
{
public class IndexModel : PageModel
{
public void OnGet()
{
}
}
}
Poznámka:
Index
Předchozí stránka je minimálním příkladem čistě pro demonstrační účely. Pokud aplikace vyžaduje další Razor prostředky stránky, například rozložení, styly, skripty a importy, získejte je z aplikace vytvořené ze Razor šablony projektu Stránky. Další informace naleznete v tématu Úvod do Razor stránek v ASP.NET Core.
Pokud plánujete obsluhovat zobrazení MVC ze serverové aplikace, přidejte Index
zobrazení a Home
kontroler:
Views/Home/Index.cshtml
:
@{
ViewData["Title"] = "Home";
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Home</title>
</head>
<body>
<div class="main">
<div class="content px-4">
<div>
<h1>Welcome</h1>
<p>Hello from MVC!</p>
</div>
</div>
</div>
</body>
</html>
Controllers/HomeController.cs
:
using Microsoft.AspNetCore.Mvc;
namespace MultipleBlazorApps.Server.Controllers;
public class HomeController : Controller
{
public IActionResult Index() => View();
}
Poznámka:
Index
Předchozí zobrazení je minimálním příkladem čistě pro demonstrační účely. Pokud aplikace vyžaduje další prostředky MVC, například rozložení, styly, skripty a importy, získejte je z aplikace vytvořené ze šablony projektu MVC. Další informace najdete v tématu Začínáme s ASP.NET Core MVC.
Další informace o používání Razor komponent z klientských aplikací na stránkách nebo zobrazeních serverové aplikace najdete v tématu Prerender a integrace ASP.NET základních Razor komponent.
Spustit aplikaci
MultipleBlazorApps.Server
Spusťte projekt:
- Přístup k počáteční klientské aplikaci na adrese
https://localhost:5001
. - Přístup k přidané klientské aplikaci na adrese
https://localhost:5002
. - Pokud je serverová aplikace nakonfigurovaná tak, aby obsluhovala stránky nebo zobrazení, přejděte na
Index
stránku nebo zobrazení na adresehttps://localhost:5000
.
- Přístup k počáteční klientské aplikaci na adrese
https://localhost:{DEFAULT PORT}/FirstApp
. - Přístup k přidané klientské aplikaci na adrese
https://localhost:{DEFAULT PORT}/SecondApp
. - Pokud je serverová aplikace nakonfigurovaná tak, aby obsluhovala stránky nebo zobrazení, přejděte na
Index
stránku nebo zobrazení na adresehttps://localhost:{DEFAULT PORT}
.
V předchozím příkladu adres URL {DEFAULT PORT}
je zástupný symbol výchozím portem definovaným souborem MultipleBlazorApps.Server
projektu Properties/launchSettings.json
v jeho applicationUrl
hodnotě.
Důležité
Při spuštění aplikace pomocí dotnet watch
příkazu (nebo dotnet run
) (.NET CLI) ověřte, že je příkazové prostředí otevřené ve Server
složce řešení.
Při spuštění aplikace pomocí tlačítka Start sady Visual Studio ověřte, že MultipleBlazorApps.Server
je projekt nastavený jako spouštěný projekt (zvýrazněný v Průzkumník řešení).
Statické prostředky
Pokud je prostředek ve složce klientské aplikace wwwroot
, zadejte cestu k žádosti o statický prostředek v komponentách:
<img alt="..." src="{PATH AND FILE NAME}" />
Zástupný symbol {PATH AND FILE NAME}
je cesta a název souboru v části wwwroot
.
Například zdroj image Jeepu (jeep-yj.png
) ve vehicle
složce wwwroot
:
<img alt="Jeep Wrangler YJ" src="vehicle/jeep-yj.png" />
Podpora knihovny tříd Razor (RCL)
Přidejte do řešení knihovnu Razor tříd (RCL) jako nový projekt:
- Klikněte pravým tlačítkem na řešení v Průzkumník řešení a vyberte Přidat>nový projekt.
- Razor Pomocí šablony projektu Knihovna tříd vytvořte projekt. Příklady v této části používají název
ComponentLibrary
projektu, což je také název sestavení RCL. Nezaškrtávejte políčko Stránky podpory a zobrazení .
Pro každou hostované Blazor WebAssembly klientskou aplikaci vytvořte odkaz na projekt RCL tak, že v Průzkumník řešení kliknete pravým tlačítkem na každý projekt klienta a vyberete Přidat>odkaz na projekt.
V klientskýchaplikacích
@using
Umístěte direktivu na začátek komponenty pro obor názvů RCL a přidejte Razor syntaxi pro komponentu. Následující příklad je pro seznam RCL s názvemComponentLibrary
sestavení:@using ComponentLibrary ... <Component1 />
Zadejte obor názvů RCL spolu se Razor syntaxí komponenty. Tento přístup nevyžaduje direktivu
@using
v horní části souboru komponenty. Následující příklad je pro seznam RCL s názvemComponentLibrary
sestavení:<ComponentLibrary.Component1 />
Poznámka:
Direktivu @using
lze také umístit do souboru každé klientské aplikace _Import.razor
, která zpřístupňuje obor názvů seznamu RCL globálně pro komponenty v daném projektu.
Pokud je jakýkoli jiný statický prostředek ve wwwroot
složce seznamu RCL, odkazujte na statický prostředek v klientské aplikaci podle pokynů v opakovaně použitelném Razor uživatelském rozhraní v knihovnách tříd s ASP.NET Core:
<img alt="..." src="_content/{PACKAGE ID}/{PATH AND FILE NAME}" />
Zástupný {PACKAGE ID}
symbol je ID balíčku RCL. Pokud v souboru projektu není zadaný parametr <PackageId>
, jako ID balíčku se ve výchozím nastavení použije název sestavení projektu. Zástupný {PATH AND FILE NAME}
symbol je cesta a název souboru v části wwwroot
.
Následující příklad ukazuje kód image Jeepu (jeep-yj.png
) ve vehicle
složce složky RCL wwwroot
. Následující příklad je pro seznam RCL s názvem ComponentLibrary
sestavení:
<img alt="Jeep Wrangler YJ" src="_content/ComponentLibrary/vehicle/jeep-yj.png" />