我有一个Angular 7应用程序,我试图在其中预渲染页面以支持Web爬网程序/ SEO。我已经决定要使用prerender.io来促进这些爬网程序的预渲染,缓存和静态HTML的提供,但是我正在努力在Angular 7应用中安装它们的中间件。
我正在尝试确定是否可以以纯粹的客户端方式使用prerender.io,因为我不是从Node服务器提供角度服务,而是在CDN中托管静态文件。根据{{3}},我可以安装一个中间件,该中间件将检测Web爬网程序何时发出页面请求,并将该请求重定向到预渲染服务器。但是,我发现的所有示例都涉及修改某些后端节点服务器。我不能在客户端全部这样做吗?
我的问题是:angular是否具有根级应用程序的概念(我假设是的),如果是这样,是否可以安装prerender.io中间件,使其以我描述的方式运行以上?
似乎有一些有关AngularJS的教程,但此后发生了很大变化。任何帮助将不胜感激!
答案 0 :(得分:1)
退后一步,了解了这项技术的工作原理之后,我现在意识到,客户端解决方案对于prerender.io没有任何意义。因此,为什么我如此困惑。
prerendering试图解决的问题是向无法完全解释Javascript渲染的站点的爬网程序提供静态HTML。因此,我试图做的事情没有任何意义(在客户端上将重定向/逻辑实现到Angular中),因为这将要求Web搜寻器必须具有JavaScript意识。
相反,我需要在我的负载均衡器上执行用户代理检查,该检查将引导流量进行预渲染。我将设置一个NGINX服务器,该服务器将指向我的CDN以进行正常通信,如果要检测到搜寻器,则将设置一个预渲染服务器。