C# 为什么blazor在从类库加载页面时要加载其他文件

C# 为什么blazor在从类库加载页面时要加载其他文件,c#,blazor,asp.net-core-3.1,blazor-webassembly,C#,Blazor,Asp.net Core 3.1,Blazor Webassembly,问题: 当我从类库(启用PWA、托管ASP.NET核心、配置为HTTPS)打开blazor页面时,它会再次联系服务器。我期望/预期的行为是,它会像对待原始客户端库中包含的页面一样对待此页面 设置: 我有一个空的blazor项目(webassembly)和一个附加的Razor组件类库 我已将类库的目标框架更改为netstandard2.1,并更改了包引用。现在看起来是这样的: <Project Sdk="Microsoft.NET.Sdk.Razor"> &l

问题:

当我从类库(启用PWA、托管ASP.NET核心、配置为HTTPS)打开blazor页面时,它会再次联系服务器。我期望/预期的行为是,它会像对待原始客户端库中包含的页面一样对待此页面

设置:

我有一个空的blazor项目(webassembly)和一个附加的Razor组件类库

我已将类库的目标框架更改为netstandard2.1,并更改了包引用。现在看起来是这样的:

<Project Sdk="Microsoft.NET.Sdk.Razor">

  <PropertyGroup>
    <TargetFramework>netstandard2.1</TargetFramework>
    <RazorLangVersion>3.0</RazorLangVersion>
  </PropertyGroup>


  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="3.1.5" />
    <PackageReference Include="System.Net.Http.Json" Version="3.2.1" />
  </ItemGroup>

</Project>
什么有效:

页面按预期加载(显示静态内容)

什么不起作用:

当浏览器进入脱机模式时,无法加载页面,因为它必须从服务器下载项目。其他页面(包括在基本客户端项目中)可以脱机加载(这里的问题不是PWA)

每次访问页面时,都会出现加载页面(同样的问题,它必须下载内容)

问题:


是否可以(如果可以,如何处理?)将新类库中的页面视为原始类库中的页面?没有下载/加载,因此这适用于PWA?

更改URL后,blazor将重新下载所有文件(提供“加载…”页面)。我不知道它为什么会这样做,但是对于一个正常的流(使用app/html中的链接),这不是一个问题,因为它不会这样做

向菜单页面添加链接时,将加载外部页面,而不进行任何额外下载

更改url后,对于原始客户端项目之外的页面或原始客户端项目之外的其他页面,将显示“加载…”页面,并重新下载文件

tl;dr:我添加了一个链接,而不是修改url,它可以正常工作

编辑:固定拼写

<Router AppAssembly="@typeof(Program).Assembly" AdditionalAssemblies="new[] { typeof(SomeMicroservice.Client.Component1).Assembly }">
... standard generated found/not found code ...
</Router>