【问题标题】:Prerender Angular 7 SPA with prerender.io client-side only仅使用 prerender.io 客户端预渲染 Angular 7 SPA
【发布时间】:2019-02-26 14:15:15
【问题描述】:

我有一个 Angular 7 应用程序,我正在尝试预渲染页面以支持网络爬虫/SEO。我已经决定要使用 prerender.io 来促进静态 HTML 的预渲染、缓存和提供给这些爬虫,但是我很难在我的 Angular 7 应用程序中安装他们的中间件。

我想弄清楚我是否可以以纯粹的客户端方式使用 prerender.io,因为我不是从 Node 服务器提供角度服务,我只是在 CDN 中托管静态文件。根据their docs,我可以安装一个中间件,它可以检测网络爬虫何时发出页面请求,并将请求重定向到预渲染服务器。但是,我发现的所有示例都涉及修改一些后端节点服务器。我不能在客户端做这一切吗?

我的问题是:angular 是否有根级应用程序的概念(我假设它有),如果有,是否可以安装 prerender.io 中间件,使其以我描述的方式运行上面?

似乎有一些关于 AngularJS 的教程,但从那以后情况发生了很大变化。任何帮助将不胜感激!

【问题讨论】:

  • AFAIK 的实现是基于查询字符串中的 _escaped_fragment_ 参数,即自 2015 年 10 月以来的 officially deprecated。我想知道这项服务这些天是否相关
  • @AlonEitan 看来他们已经找到了一种无需 escaped_fragment 元标记prerender.io/documentation/google-support 即可正式支持爬虫的方法
  • 天哪:“确保更新您的 Prerender.io 中间件或手动将 googlebot 和 bingbot 添加到您的 Prerender.io 检查的用户代理列表中中间件” - 听起来像 cloaking 对我来说
  • @AlonEitan 实际上 Google 建议使用它们! developers.google.com/search/docs/guides/dynamic-rendering
  • 谢谢!会做!我想我有一个想法(请参阅下面的答案)

标签: angular seo angular6 angular7 prerender


【解决方案1】:

退一步了解这项技术的工作原理后,我现在意识到客户端解决方案对 prerender.io 没有任何意义。因此,我为什么如此困惑。

预渲染试图解决的是向爬虫提供静态 HTML,这些爬虫根本无法解释由 Javascript 呈现的网站。因此,我试图做的事情毫无意义(在客户端将重定向/逻辑实现到 Angular 中),因为它需要网络爬虫能够识别 javascript。

相反,我需要在负载均衡器上实施用户代理检查,它将引导流量进行预渲染。我将设置一个 NGINX 服务器,该服务器将指向我的 CDN 以获取正常流量,并设置一个预渲染服务器(如果检测到爬虫)。

编辑: 这是怎么做的! https://medium.com/@damwhitaker/using-aws-ec2-nginx-and-prerender-io-as-a-proxy-for-a-single-page-app-2c3769689060

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-26
    • 2018-04-11
    • 2019-09-07
    • 2019-08-07
    • 1970-01-01
    • 1970-01-01
    • 2020-12-26
    相关资源
    最近更新 更多