我有一个Angular 7应用程序,我正在尝试预先渲染页面以支持网络爬虫/ SEO。我决定使用prerender.io来帮助这些爬虫预先渲染、缓存和提供静态超文本标记语言,但是我很难在我的Angular 7应用程序中安装它们的中间件。
我想知道我是否可以以一种纯粹的客户端方式使用prerender.io,因为我不是从Node服务器为angular提供服务,我只是在CDN中托管静态文件。根据their docs的说法,我可以安装一个中间件,当网络爬虫发出页面请求时,它会检测到,并将请求重定向到预渲染服务器。然而,我发现的所有示例都涉及到修改一些后端节点服务器。难道我不能全部在客户端做这件事吗?
我的问题是: angular有根级应用程序的概念吗(我假设它有),如果有,是否有可能安装prerender.io中间件,使其以我上面描述的方式运行?
似乎有一些针对AngularJS的教程,但从那时起,事情发生了很大的变化。任何帮助都将不胜感激!
发布于 2019-02-26 23:59:05
在退后一步并理解这项技术是如何工作的之后,我现在意识到客户端解决方案对prerender.io没有任何意义。因此,为什么我会如此困惑。
预渲染试图解决的是将静态HTML传递给爬虫程序,这些爬虫程序根本无法解释Javascript呈现的站点。因此,我试图做的是没有意义的(在客户机上将重定向/逻辑实现到Angular中),因为这将要求网络爬虫是javascript感知的。
相反,我需要在我的负载均衡器上实现一个用户代理检查,它将引导预渲染的流量。我将设置一个NGINX服务器,它将指向我的CDN以获取正常流量,如果检测到爬虫,还将设置一个预渲染服务器。
https://stackoverflow.com/questions/54887504
复制相似问题