我有一个使用 .NET 8 的 Blazor InteractiveServer 应用程序。
Google 网络爬虫仅获取页面的静态 html,而不等待 Blazor 创建 SignalR 电路,因此也不会等待
OnInitializeAsync()
从数据库读取并填充页面。
我有 2 个页面需要为其完整内容建立索引。这些页面对于 url 中的参数来说是唯一的
?id=123
并且 sitemap.txt 列出了数千个这 2 个页面。
我的问题首先是,如何判断页面是否正在被爬虫读取?
其次,如何将该页面置于渲染模式,其中首先返回的是完全填充的静态 HTML 页面。
如果页面完全呈现为静态 HTML 之后,它会再次将其重新呈现为设置了 SignalR 的交互式页面,那就没问题了。
我在预渲染上找到了此信息,但不清楚它去哪里或者这是否是我需要的。没有关于如何仅在爬虫请求页面时执行此操作。
解决方案如下:
&crawler=true
。crawler
参数时,在预渲染调用上完全填充页面。就是这样。