Blazor WebAssembly Server项目如何引用客户端索引?
使用模板:启用ASP.NET核心托管的Blazor WebAssembly应用程序 它创建项目:Blazor WebAssembly Server项目如何引用客户端索引?,blazor,blazor-client-side,blazor-webassembly,Blazor,Blazor Client Side,Blazor Webassembly,使用模板:启用ASP.NET核心托管的Blazor WebAssembly应用程序 它创建项目: BlazorApp1.客户机 BlazorApp1.Server 我可以看到服务器有一个对客户端的项目引用,但我无法确定什么代码允许服务器显示客户端 服务器如何知道客户端索引文件位于另一个程序集中 服务器项目中托管的客户端代码是否位于同一端口上 试图弄明白这一点我有点不知所措。项目引用就在那里,以便MsBuild(VS)可以将客户端文件复制到服务器的bin目录 然后,服务器有一个特殊的中间件组件
- BlazorApp1.客户机
- BlazorApp1.Server
试图弄明白这一点我有点不知所措。项目引用就在那里,以便MsBuild(VS)可以将客户端文件复制到服务器的bin目录 然后,服务器有一个特殊的中间件组件为客户机提供服务。以下两行都是关于服务静态文件的:
app.UseBlazorFrameworkFiles();
app.UseStaticFiles();
服务器实际上不链接或引用客户端中的任何代码
服务器项目中托管的客户端代码是否位于同一端口上
是的,只是为了方便。您可以在其他地方托管客户端(但也可以考虑CORS设置)
我无法确定什么代码允许服务器显示客户端
这发生在UseEndPoints中的最后一行:
endpoints.MapControllers(); // handle /api
endpoints.MapFallbackToFile("index.html"); // everything else
请注意,正因为如此,您的API永远不会返回404代码。它将返回客户端应用程序的“nothing here”页面。您将看到一个与“HTML不是JSON”相关的错误。这是一个糟糕的例子,服务器项目引用了客户端。他们对微软感到失望,但并不感到惊讶,因为他们从来没能做好网络工作。