Menghosting dan menyebarkan ASP.NET Core Blazor
Catatan
Ini bukan versi terbaru dari artikel ini. Untuk rilis saat ini, lihat versi .NET 8 dari artikel ini.
Peringatan
Versi ASP.NET Core ini tidak lagi didukung. Untuk informasi selengkapnya, lihat Kebijakan Dukungan .NET dan .NET Core. Untuk rilis saat ini, lihat versi .NET 8 dari artikel ini.
Penting
Informasi ini berkaitan dengan produk pra-rilis yang mungkin dimodifikasi secara substansial sebelum dirilis secara komersial. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Untuk rilis saat ini, lihat versi .NET 8 dari artikel ini.
Artikel ini menjelaskan cara menghosting dan menyebarkan aplikasi Blazor.
Menerbitkan aplikasi
Aplikasi diterbitkan untuk penyebaran dalam konfigurasi Rilis.
Catatan
Terbitkan Blazor WebAssemblysolusi yang dihosting dari proyek Server.
- Pilih perintah Terbitkan {APPLICATION} dari menu Build, tempat
{APPLICATION}
tempat penampung nama aplikasi. - Pilih terbitkan target. Untuk menerbitkan secara lokal, pilih Folder.
- Terima lokasi default di bidang Pilih folder atau tentukan lokasi lain. Pilih tombol
Publish
.
Menerbitkan aplikasi akan memicu pemulihan dependensi proyek dan membangun proyek sebelum membuat aset untuk penyebaran. Sebagai bagian dari proses pembangunan, metode dan rangkaian yang tidak digunakan dihapus untuk mengurangi ukuran unduhan aplikasi dan waktu muat.
Terbitkan lokasi:
- Blazor Web App: Aplikasi diterbitkan ke dalam folder
/bin/Release/{TARGET FRAMEWORK}/publish
. Sebarkan konten dari folderpublish
ke host. - Blazor WebAssembly: Aplikasi diterbitkan ke dalam folder
bin\Release\net8.0\browser-wasm\publish\
. Untuk menyebarkan apl sebagai situs statis, salin konten dari folderwwwroot
ke host situs statis.
- Blazor Server: Aplikasi diterbitkan ke dalam folder
/bin/Release/{TARGET FRAMEWORK}/publish
. Sebarkan konten dari folderpublish
ke host. - Blazor WebAssembly
- Mandiri: Aplikasi diterbitkan ke dalam
/bin/Release/{TARGET FRAMEWORK}/publish/wwwroot
folder ataubin\Release\{TARGET FRAMEWORK}\browser-wasm\publish
, tergantung pada versi SDK yang digunakan untuk menerbitkan aplikasi. Untuk menyebarkan apl sebagai situs statis, salin konten dari folderwwwroot
ke host situs statis. - Dihosting: Aplikasi klien Blazor WebAssembly diterbitkan ke folder
/bin/Release/{TARGET FRAMEWORK}/publish/wwwroot
aplikasi server, bersama dengan aset web statis lainnya dari aplikasi klien. Sebarkan konten dari folderpublish
ke host.
- Mandiri: Aplikasi diterbitkan ke dalam
Di {TARGET FRAMEWORK}
jalur sebelumnya adalah kerangka kerja target (misalnya, net8.0
).
IIS
Untuk menghosting Blazor aplikasi di IIS, lihat sumber daya berikut:
- Hosting IIS
- Host dan sebarkan aplikasi sisi Blazor server ASP.NET Core: Aplikasi server yang berjalan di IIS, termasuk IIS dengan Azure Virtual Machines (VM) yang menjalankan OS Windows dan Azure App Service.
- Host dan sebarkan ASP.NET Core Blazor WebAssembly: Mencakup panduan tambahan untuk Blazor WebAssembly aplikasi yang dihosting di IIS, termasuk hosting situs statis, file kustom
web.config
, penulisan ulang URL, sub-aplikasi, kompresi, dan hosting file statis Azure Storage. - Hosting sub-aplikasi IIS
- Ikuti panduan di bagian Jalur dasar aplikasi untuk Blazor aplikasi sebelum menerbitkan aplikasi. Contoh menggunakan jalur
/CoolApp
dasar aplikasi dan menunjukkan cara mendapatkan jalur dasar dari pengaturan aplikasi atau penyedia konfigurasi lainnya. - Ikuti panduan konfigurasi sub-aplikasi dalam Konfigurasi tingkat lanjut. Jalur folder sub-aplikasi di bawah situs akar menjadi jalur virtual sub-aplikasi. Untuk jalur
/CoolApp
dasar aplikasi , Blazor aplikasi ditempatkan di folder bernamaCoolApp
di bawah situs akar dan sub-aplikasi mengambil jalur virtual ./CoolApp
- Ikuti panduan di bagian Jalur dasar aplikasi untuk Blazor aplikasi sebelum menerbitkan aplikasi. Contoh menggunakan jalur
Berbagi kelompok aplikasi di antara aplikasi ASP.NET Core tidak didukung, termasuk untuk aplikasi Blazor. Gunakan satu kelompok aplikasi per aplikasi saat menghosting dengan IIS, dan hindari penggunaan direktori virtual IIS untuk menghosting beberapa aplikasi.
Satu atau beberapa aplikasi Blazor WebAssembly yang dihosting oleh aplikasi ASP.NET Core, yang dikenal sebagai solusi Blazor WebAssembly yang dihosting, didukung untuk satu kelompok aplikasi. Namun, kami tidak menyarankan atau mendukung penetapan satu kelompok aplikasi ke beberapa solusi Blazor WebAssembly yang dihosting atau dalam skenario penghostingan sub-aplikasi.
Untuk informasi lebih lanjut tentang solusi, lihat Peralatan untuk ASP.NET Core Blazor.
Jalur dasar aplikasi
Jalur dasar aplikasi adalah jalur URL akar aplikasi. Perutean yang berhasil dalam Blazor aplikasi memerlukan konfigurasi kerangka kerja untuk jalur URL akar apa pun yang tidak berada di jalur /
dasar aplikasi default .
Pertimbangkan aplikasi ASP.NET Core dan sub-aplikasi Blazor berikut:
- Aplikasi ASP.NET Core diberi nama
MyApp
:- Aplikasi secara fisik berada di
d:/MyApp
. - Permintaan diterima di
https://www.contoso.com/{MYAPP RESOURCE}
.
- Aplikasi secara fisik berada di
- Aplikasi Blazor bernama
CoolApp
adalah sub-aplikasi dariMyApp
:- Sub-aplikasi secara fisik berada di
d:/MyApp/CoolApp
. - Permintaan diterima di
https://www.contoso.com/CoolApp/{COOLAPP RESOURCE}
.
- Sub-aplikasi secara fisik berada di
Tanpa menentukan konfigurasi tambahan untuk CoolApp
, sub-aplikasi dalam skenario ini tidak memiliki pengetahuan tentang lokasinya di server. Misalnya, aplikasi tidak dapat membuat URL relatif yang benar ke sumber dayanya tanpa mengetahui bahwa itu berada di jalur URL relatif /CoolApp/
. Skenario ini juga berlaku di berbagai skenario hosting dan proksi terbalik saat aplikasi tidak dihosting di jalur URL root.
Latar belakang
Tujuan tag jangkar (href
) dapat terdiri dengan salah satu dari dua titik akhir:
Lokasi absolut yang menyertakan skema (default ke skema halaman jika dihilangkan), host, port, dan jalur atau hanya garis miring (
/
) diikuti oleh jalur.Contoh:
https://example.com/a/b/c
atau/a/b/c
Lokasi relatif yang hanya berisi jalur dan tidak dimulai dengan garis miring (
/
). Ini diselesaikan relatif terhadap URL dokumen saat ini atau<base>
nilai tag, jika ditentukan.Contoh:
a/b/c
Kehadiran garis miring berikutnya (/
) dalam jalur dasar aplikasi yang dikonfigurasi signifikan untuk menghitung jalur dasar untuk URL aplikasi. Misalnya, https://example.com/a
memiliki jalur https://example.com/
dasar , sementara https://example.com/a/
dengan garis miring berikutnya memiliki jalur https://example.com/a
dasar .
Ada tiga sumber tautan yang berkaitan dengan Blazor di aplikasi ASP.NET Core:
- URL dalam Razor komponen (
.razor
) biasanya relatif. - URL dalam skrip, seperti Blazor skrip (
blazor.*.js
), relatif terhadap dokumen.
- URL yang ditulis secara manual dalam
_Host.cshtml
file (Blazor Server), yang jika Anda merender di dalam dokumen yang berbeda harus selalu absolut. - URL dalam Razor komponen (
.razor
) biasanya relatif. - URL dalam skrip, seperti Blazor skrip (
blazor.*.js
), relatif terhadap dokumen.
Jika Anda merender Blazor aplikasi dari dokumen yang berbeda (misalnya, /Admin/B/C/
dan /Admin/D/E/
), Anda harus memperhitungkan jalur dasar aplikasi, atau jalur dasar berbeda saat aplikasi merender di setiap dokumen dan sumber daya diambil dari URL yang salah.
Ada dua pendekatan untuk menangani tantangan menyelesaikan tautan relatif dengan benar:
- Petakan sumber daya secara dinamis menggunakan dokumen yang dirender sebagai akar.
- Atur jalur dasar yang konsisten untuk dokumen dan petakan sumber daya di bawah jalur dasar tersebut.
Opsi pertama lebih rumit dan bukan pendekatan yang paling umum, karena membuat navigasi berbeda untuk setiap dokumen. Pertimbangkan contoh berikut untuk merender halaman /Something/Else
:
- Dirender di bawah
/Admin/B/C/
, halaman dirender dengan jalur/Admin/B/C/Something/Else
. - Dirender di bawah
/Admin/D/E/
, halaman dirender pada jalur yang sama dari/Admin/B/C/Something/Else
.
Di bawah pendekatan pertama, penawaran IDynamicEndpointMetadata perutean dan MatcherPolicy, yang dalam kombinasi dapat menjadi dasar untuk menerapkan solusi yang sepenuhnya dinamis yang menentukan pada runtime tentang bagaimana permintaan dirutekan.
Untuk opsi kedua, yang merupakan pendekatan biasa yang diambil, aplikasi mengatur jalur dasar dalam dokumen dan memetakan titik akhir server ke jalur di bawah dasar. Panduan berikut mengadopsi pendekatan ini.
Sisi server Blazor
Petakan SignalR hub aplikasi sisi Blazor server dengan meneruskan jalur ke MapBlazorHub Program
dalam file:
app.MapBlazorHub("base/path");
Manfaat penggunaannya MapBlazorHub adalah Anda dapat memetakan pola, seperti "{tenant}"
dan bukan hanya jalur konkret.
Anda juga dapat memetakan SignalR hub saat aplikasi berada di folder virtual dengan alur middleware bercabang. Dalam contoh berikut, permintaan untuk /base/path/
ditangani oleh Blazorhub :SignalR
app.Map("/base/path/", subapp => {
subapp.UsePathBase("/base/path/");
subapp.UseRouting();
subapp.UseEndpoints(endpoints => endpoints.MapBlazorHub());
});
Konfigurasikan <base>
tag, sesuai panduan di bagian Konfigurasikan jalur dasar aplikasi.
Host Blazor WebAssembly
Jika aplikasi adalah aplikasi yang dihosting Blazor WebAssembly :
- Dalam proyek Server (
Program.cs
):- Sesuaikan jalur UseBlazorFrameworkFiles (misalnya,
app.UseBlazorFrameworkFiles("/base/path");
). - Mengonfigurasi panggilan ke UseStaticFiles (misalnya,
app.UseStaticFiles("/base/path");
).
- Sesuaikan jalur UseBlazorFrameworkFiles (misalnya,
- Client Dalam proyek:
- Konfigurasikan
<StaticWebAssetBasePath>
dalam file proyek agar sesuai dengan jalur untuk melayani aset web statis (misalnya,<StaticWebAssetBasePath>base/path</StaticWebAssetBasePath>
). - Konfigurasikan
<base>
tag, sesuai panduan di bagian Konfigurasikan jalur dasar aplikasi.
- Konfigurasikan
Untuk contoh hosting beberapa Blazor WebAssembly aplikasi dalam solusi yang dihostingBlazor WebAssembly, lihat Beberapa aplikasi ASP.NET Core Blazor WebAssembly yang dihosting, di mana pendekatan dijelaskan untuk hosting domain/port dan hosting subpath dari beberapa Blazor WebAssembly aplikasi klien.
Mandiri Blazor WebAssembly
Di aplikasi mandiri Blazor WebAssembly , hanya tag yang dikonfigurasi <base>
, sesuai panduan di bagian Mengonfigurasi jalur dasar aplikasi.
Mengonfigurasi jalur dasar aplikasi
Untuk menyediakan konfigurasi untuk Blazor jalur https://www.contoso.com/CoolApp/
dasar aplikasi , atur jalur dasar aplikasi (<base>
), yang juga disebut jalur akar relatif.
Dengan mengonfigurasi jalur dasar aplikasi, komponen yang tidak ada di direktori akar dapat membuat URL relatif terhadap jalur akar aplikasi. Komponen di berbagai tingkat struktur direktori dapat membangun tautan ke sumber daya lain pada lokasi di seluruh aplikasi. Jalur dasar aplikasi juga digunakan untuk mencegah hyperlink yang dipilih dengan target href
tautan berada dalam ruang URI jalur dasar aplikasi. Komponen Router menangani navigasi internal.
<base>
Tempatkan tag dalam <head>
markup (lokasi <head>
konten) sebelum elemen apa pun dengan nilai atribut yang merupakan URL, seperti href
atribut <link>
elemen.
Dalam banyak skenario hosting, jalur URL relatif ke aplikasi adalah akar dari aplikasi. Dalam kasus default ini, jalur dasar URL relatif aplikasi dikonfigurasi /
seperti <base href="/" />
dalam <head>
konten.
Dalam banyak skenario hosting, jalur URL relatif ke aplikasi adalah akar dari aplikasi. Dalam kasus default ini, jalur dasar URL relatif aplikasi adalah sebagai berikut dalam <head>
konten:
- Blazor Server:
~/
dikonfigurasi sebagai<base href="~/" />
. - Blazor WebAssembly:
/
dikonfigurasi sebagai<base href="/" />
.
Catatan
Dalam beberapa skenario hosting, seperti Halaman GitHub dan sub-aplikasi IIS, jalur dasar aplikasi harus diatur ke jalur URL relatif aplikasi server.
Di aplikasi sisi Blazor server, gunakan salah satu pendekatan berikut:
Opsi 1: Gunakan
<base>
tag untuk mengatur jalur dasar aplikasi (lokasi<head>
konten):<base href="/CoolApp/">
Garis miring berikutnya diperlukan.
Opsi 2: Panggil UsePathBaseterlebih dahulu dalam alur pemrosesan permintaan aplikasi (
Program.cs
) segera setelah WebApplicationBuilder dibuat (builder.Build()
) untuk mengonfigurasi jalur dasar untuk middleware berikut yang berinteraksi dengan jalur permintaan:app.UsePathBase("/CoolApp");
Memanggil UsePathBase disarankan jika Anda juga ingin menjalankan aplikasi Blazor Server secara lokal. Misalnya, berikan URL peluncuran di
Properties/launchSettings.json
:"launchUrl": "https://localhost:{PORT}/CoolApp",
Tempat penampung
{PORT}
dalam contoh sebelumnya adalah port yang cocok dengan port aman di jalur konfigurasiapplicationUrl
. Contoh berikut menunjukkan profil peluncuran lengkap untuk aplikasi di port 7279:"BlazorSample": { "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, "applicationUrl": "https://localhost:7279;http://localhost:5279", "launchUrl": "https://localhost:7279/CoolApp", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" }
Untuk informasi selengkapnya tentang
launchSettings.json
file, lihat Menggunakan beberapa lingkungan di ASP.NET Core. Untuk informasi tambahan tentang Blazor jalur dan hosting dasar aplikasi, lihat<base href="/" />
atau alternatif tag dasar untuk Blazor integrasi MVC (dotnet/aspnetcore #43191).
Blazor WebAssembly Mandiri (
wwwroot/index.html
):<base href="/CoolApp/">
Garis miring berikutnya diperlukan.
Dihosting Blazor WebAssembly (Client proyek,
wwwroot/index.html
):<base href="/CoolApp/">
Garis miring berikutnya diperlukan.
Server Dalam proyek, panggilUsePathBase terlebih dahulu dalam alur pemrosesan permintaan aplikasi (
Program.cs
) segera setelah WebApplicationBuilder dibangun (builder.Build()
) untuk mengonfigurasi jalur dasar untuk middleware berikut yang berinteraksi dengan jalur permintaan:app.UsePathBase("/CoolApp");
Catatan
Saat menggunakan WebApplication (lihat Migrasi dari ASP.NET Core 5.0 ke 6.0), app.UseRouting
harus dipanggil setelahnya UsePathBase sehingga Middleware Perutean dapat mengamati jalur yang dimodifikasi sebelum mencocokkan rute. Jika tidak, rute dicocokkan sebelum jalur ditulis ulang oleh UsePathBase seperti yang dijelaskan dalam artikel Pengurutan Middleware dan Perutean.
Jangan awali tautan di seluruh aplikasi dengan garis miring. Hindari penggunaan pemisah segmen jalur atau gunakan notasi jalur relatif garis miring titik (./
):
<a href="/account">
Salah: <a href="account">
Benar: <a href="./account">
Benar:
Dalam Blazor WebAssembly permintaan API web dengan HttpClient
layanan, konfirmasikan bahwa pembantu JSON (HttpClientJsonExtensions) tidak mengawali URL dengan garis miring (/
):
var rsp = await client.GetFromJsonAsync("/api/Account");
Salah: var rsp = await client.GetFromJsonAsync("api/Account");
Benar:
Jangan awali tautan relatif Pengelola Navigasi dengan garis miring ke depan. Hindari penggunaan pemisah segmen jalur atau gunakan notasi jalur relatif titik-garis miring (./
) (Navigation
adalah disuntikkan NavigationManager):
Navigation.NavigateTo("/other");
Salah: Navigation.NavigateTo("other");
Benar: Navigation.NavigateTo("./other");
Benar:
Dalam konfigurasi umum untuk hosting Azure/IIS, konfigurasi tambahan biasanya tidak diperlukan. Dalam beberapa skenario hosting non-IIS dan hosting proksi terbalik, konfigurasi Middleware File Statis tambahan mungkin diperlukan:
- Untuk melayani file statis dengan benar (misalnya,
app.UseStaticFiles("/CoolApp");
). - Untuk melayani Blazor skrip (
_framework/blazor.*.js
). Untuk informasi lebih lanjut, lihat file statis Blazor ASP.NET Core.
Untuk aplikasi Blazor WebAssembly dengan jalur URL relatif non-akar (misalnya, <base href="/CoolApp/">
), aplikasi gagal menemukan sumber dayanya saat dijalankan secara lokal. Untuk mengatasi masalah ini selama pengembangan dan pengujian lokal, Anda dapat memberikan argumen jalur dasar yang cocok dengan nilai href
dari tag <base>
saat runtime. Jangan sertakan garis miring. Untuk meneruskan argumen dasar jalur saat menjalankan aplikasi secara lokal, jalankan dotnet watch
perintah (atau dotnet run
) dari direktori aplikasi dengan --pathbase
opsi :
dotnet watch --pathbase=/{RELATIVE URL PATH (no trailing slash)}
Untuk aplikasi Blazor WebAssembly dengan jalur URL relatif /CoolApp/
(<base href="/CoolApp/">
), perintahnya adalah:
dotnet watch --pathbase=/CoolApp
Jika Anda lebih suka mengonfigurasi profil peluncuran aplikasi untuk menentukan pathbase
secara otomatis alih-alih secara manual dengan dotnet watch
(atau dotnet run
), atur commandLineArgs
properti di Properties/launchSettings.json
. Berikut ini juga mengonfigurasi URL peluncuran (launchUrl
):
"commandLineArgs": "--pathbase=/{RELATIVE URL PATH (no trailing slash)}",
"launchUrl": "{RELATIVE URL PATH (no trailing slash)}",
Menggunakan CoolApp
sebagai contoh:
"commandLineArgs": "--pathbase=/CoolApp",
"launchUrl": "CoolApp",
dotnet watch
Menggunakan (atau dotnet run
) dengan --pathbase
opsi atau konfigurasi profil peluncuran yang mengatur jalur dasar, Blazor WebAssembly aplikasi merespons secara lokal di http://localhost:port/CoolApp
.
Untuk informasi selengkapnya tentang launchSettings.json
file, lihat Menggunakan beberapa lingkungan di ASP.NET Core. Untuk informasi tambahan tentang Blazor jalur dan hosting dasar aplikasi, lihat <base href="/" />
atau alternatif tag dasar untuk Blazor integrasi MVC (dotnet/aspnetcore #43191).
Mendapatkan jalur dasar aplikasi dari konfigurasi
Panduan berikut menjelaskan cara mendapatkan jalur untuk <base>
tag dari file pengaturan aplikasi untuk lingkungan yang berbeda.
Tambahkan file pengaturan aplikasi ke aplikasi. Contoh berikut adalah untuk Staging
lingkungan (appsettings.Staging.json
):
{
"AppBasePath": "staging/"
}
Di aplikasi sisi Blazor server, muat jalur dasar dari konfigurasi dalam <head>
konten:
@inject IConfiguration Config
...
<head>
...
<base href="/@(Config.GetValue<string>("AppBasePath"))" />
...
</head>
Atau, aplikasi sisi server dapat memperoleh nilai dari konfigurasi untuk UsePathBase. Tempatkan kode berikut terlebih dahulu dalam alur pemrosesan permintaan aplikasi (Program.cs
) segera setelah WebApplicationBuilder dibuat (builder.Build()
). Contoh berikut menggunakan kunci AppBasePath
konfigurasi :
app.UsePathBase($"/{app.Configuration.GetValue<string>("AppBasePath")}");
Di aplikasi sisi Blazor WebAssembly klien:
<base>
Hapus tag dariwwwroot/index.html
:- <base href="..." />
Berikan jalur dasar aplikasi melalui
HeadContent
komponen dalamApp
komponen (App.razor
):@inject IConfiguration Config ... <HeadContent> <base href="/@(Config.GetValue<string>("AppBasePath"))" /> </HeadContent>
Jika tidak ada nilai konfigurasi untuk dimuat, misalnya di lingkungan non-penahapan, yang sebelumnya href
diselesaikan ke jalur /
akar .
Contoh di bagian ini berfokus pada penyediaan jalur dasar aplikasi dari pengaturan aplikasi, tetapi pendekatan membaca jalur dari IConfiguration berlaku untuk penyedia konfigurasi apa pun. Untuk informasi selengkapnya, lihat sumber daya berikut:
Blazor ServerMapFallbackToPage
konfigurasi
Bagian ini hanya berlaku untuk Blazor Server aplikasi. MapFallbackToPage tidak didukung di Blazor Web Apps dan Blazor WebAssembly aplikasi.
Dalam skenario di mana aplikasi memerlukan area terpisah dengan sumber daya kustom dan komponen Razor:
Buat folder di dalam folder
Pages
aplikasi untuk menyimpan sumber daya. Misalnya, bagian administrator aplikasi dibuat di folder baru bernamaAdmin
(Pages/Admin
).Buat halaman akar (
_Host.cshtml
) untuk area tersebut. Misalnya, buat filePages/Admin/_Host.cshtml
dari halaman akar utama aplikasi (Pages/_Host.cshtml
). Jangan berikan arahan@page
di halaman Admin_Host
.Tambahkan tata letak ke folder area (misalnya,
Pages/Admin/_Layout.razor
). Di tata letak untuk area terpisah, atur tag<base>
href
agar sesuai dengan folder area (misalnya,<base href="/Admin/" />
). Untuk tujuan demonstrasi, tambahkan~/
ke sumber daya statis di halaman. Contohnya:~/css/bootstrap/bootstrap.min.css
~/css/site.css
~/BlazorSample.styles.css
(namespace aplikasi contoh adalahBlazorSample
)~/_framework/blazor.server.js
(skrip Blazor)
Jika area tersebut harus memiliki folder aset statisnya sendiri, tambahkan folder tersebut dan tentukan lokasinya ke Middleware File Statis di
Program.cs
(misalnya,app.UseStaticFiles("/Admin/wwwroot")
).Komponen Razor ditambahkan ke folder area. Minimal, tambahkan komponen
Index
ke folder area dengan arahan@page
yang benar untuk area tersebut. Misalnya, tambahkan filePages/Admin/Index.razor
berdasarkan filePages/Index.razor
default aplikasi. Tunjukkan area Admin sebagai template rute di bagian atas file (@page "/admin"
). Tambahkan komponen tambahan sesuai kebutuhan. Misalnya,Pages/Admin/Component1.razor
dengan@page
direktif dan template rute@page "/admin/component1
.Di
Program.cs
, panggil MapFallbackToPage untuk jalur permintaan area tepat sebelum jalur halaman akar cadangan ke halaman_Host
:... app.UseRouting(); app.MapBlazorHub(); app.MapFallbackToPage("~/Admin/{*clientroutes:nonfile}", "/Admin/_Host"); app.MapFallbackToPage("/_Host"); app.Run();
Menghosting beberapa aplikasi Blazor WebAssembly
Untuk informasi lebih lanjut tentang menghosting beberapa aplikasi Blazor WebAssembly dalam Blazorsolusi yang dihosting, lihat Beberapa aplikasi Blazor WebAssembly ASP.NET Core yang dihosting.
Penyebaran
Untuk panduan penyebaran, lihat topik berikut:
ASP.NET Core