如何有条件地关闭 2 个 Blazor 页面的预渲染

问题描述 投票:0回答:1

我有一个使用 .NET 8 的 Blazor InteractiveServer 应用程序。

Google 网络爬虫仅获取页面的静态 html,而不等待 Blazor 创建 SignalR 电路,因此也不会等待

OnInitializeAsync()
从数据库读取并填充页面。

我有 2 个页面需要为其完整内容建立索引。这些页面对于 url 中的参数来说是唯一的

?id=123
并且 sitemap.txt 列出了数千个这 2 个页面。

我的问题首先是,如何判断页面是否正在被爬虫读取?

其次,如何将该页面置于渲染模式,其中首先返回的是完全填充的静态 HTML 页面。

如果页面完全呈现为静态 HTML 之后,它会再次将其重新呈现为设置了 SignalR 的交互式页面,那就没问题了。

我在预渲染上找到了此信息,但不清楚它去哪里或者这是否是我需要的。没有关于如何仅在爬虫请求页面时执行此操作。

web-crawler blazor-server-side
1个回答
0
投票

解决方案如下:

  1. 在站点地图中为每个网址添加
    &crawler=true
  2. 当传入
    crawler
    参数时,在预渲染调用上完全填充页面。

就是这样。

© www.soinside.com 2019 - 2024. All rights reserved.