我想制作一个应用程序,我需要在基域上使用静态页面,在子目录上使用 Blazor 应用程序。
例子:
https://example.com
是我的静态页面应该在的位置(例如 '/features' 或 '/pricing' 或 '/faq')
https://example.com/app
应该是我的 blazor 网站所在的位置。
我已经看到我可以将 PathString
传递给 app.UseBlazorFrameworkFiles
但这不起作用( app.UseBlazorFrameworkFiles(new PathString("/app")
)。我的 Blazor 应用托管在带有 gRPC 的 .NET 5 WebApi 项目上。
有人可以指出我如何实现这一目标的正确方向吗?
提前致谢!
子目录名称需要出现在四个地方。
在您的 WebAPI 项目的 Startup.cs 中,您需要:
在端点配置中:
在 Wasm 应用程序的 wwwroot/index.html 文件中:
在 Wasm 应用的 CSProj 文件中:
文档: 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
更改为绝对路径:身份功能所需的其他更改:
指定“RedirectUri”和“LogoutUri”以包含新的子目录