Cou*_*upz 5 .net routes static-files blazor blazor-webassembly
我想制作一个应用程序,我需要基域上的静态页面和子目录上的 Blazor 应用程序。
例子:
https://example.com 是我的静态页面应该在哪里(如“/features”或“/pricing”或“/faq”)
https://example.com/app 应该是我的 blazor 网站所在的地方。
我已经看到我可以传入一个PathStringtoapp.UseBlazorFrameworkFiles但这不起作用 ( app.UseBlazorFrameworkFiles(new PathString("/app"))。我的 Blazor 应用托管在带有 gRPC 的 .NET 5 WebApi 项目上。
有人可以指出我如何实现这一目标的正确方向吗?
提前致谢!
子目录名称需要出现在四个位置。
在您的 WebAPI 项目的 Startup.cs 中,您需要:
app.UseBlazorFrameworkFiles(new PathString("/app"));
Run Code Online (Sandbox Code Playgroud)
并在端点配置中:
endpoints.MapFallbackToFile("/app/{*path:nonfile}", "app/index.html");
Run Code Online (Sandbox Code Playgroud)
在 Wasm 应用程序的 wwwroot/index.html 文件中:
<base href="/app/" />
Run Code Online (Sandbox Code Playgroud)
在 Wasm 应用程序的 CSProj 文件中:
<StaticWebAssetBasePath>app</StaticWebAssetBasePath>
Run Code Online (Sandbox Code Playgroud)
文档:https : //docs.microsoft.com/en-us/aspnet/core/blazor/host-and-deploy/webassembly? view = aspnetcore-5.0#hosted-deployment-with-multiple-blazor-webassembly- apps
这里有一个示例实现:https : //github.com/javiercn/BlazorMultipleApps
如果您在 Identity 中使用了默认的 Wasm 模板,您会发现您的客户端无法正确加载,因为未提供捆绑在 microsoft.aspnetcore.components.webassembly.authentication 中的静态资产。要解决此问题,请将index.html 中的src更改为绝对路径:
<script src="/_content/Microsoft.AspNetCore.Components.WebAssembly.Authentication/AuthenticationService.js"></script>
Run Code Online (Sandbox Code Playgroud)
身份功能所需的其他更改:
"Clients": {
"BlazorApp.Client": {
"Profile": "SPA",
"RedirectUri": "https://localhost:44357/app/authentication/login-callback",
"LogoutUri": "https://localhost:44357/app/authentication/logout-callback"
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
556 次 |
| 最近记录: |