从类库加载页面时,为什么blazor会加载其他文件

时间:2020-07-16 22:12:05

标签: 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">

  <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>

我在App.Razor中引用了类库,如下所示:

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

有效的方法:

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

什么不起作用:

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

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

问题:

是否可以(如果是,如何?)将新类库中的页面视为原始类库中的页面?没有下载/加载,那么PWA可以使用吗?

1 个答案:

答案 0 :(得分:0)

更改URL后,blazor将重新下载所有文件(为您提供“正在加载...”页面)。我不确定为什么要这样做,但是对于正常的流程(使用app / html中的链接),这不是问题,因为届时就不会这样做。

将链接添加到菜单页面时,将加载外部页面,而无需进行任何其他下载。

更改网址后,对于原始客户端项目之外的页面或原始客户端项目之外的另一个页面,将显示“正在加载...”页面,并将重新下载文件。

tl; dr:我添加了一个链接而不是更改网址,并且可以正常工作

编辑:固定拼写