【问题标题】:angularjs rendering on server side asp.net服务器端asp.net上的angularjs渲染
【发布时间】:2016-08-13 00:40:42
【问题描述】:

我在前端使用了 angularjs 框架,在后端使用了 asp net mvc 来开发我的网络应用程序。如您所知,angularjs 在 SEO 方面存在重大缺陷。有一些解决方案,例如使用 phantomjs 创建网站快照并将其提供给搜索机器人而不是原始网站。但我不喜欢那样。我最近介绍了同构 Web 应用程序的概念,如果我没记错的话,可以在服务器上预渲染 angularjs 应用程序,然后将渲染的 html 提供给客户端。我发现的所有解决方案都适用于其他框架。像 Rendr (https://github.com/rendrjs/rendr) 或 angularjs-server (https://github.com/saymedia/angularjs-server)。还有一个名为 NodeServices (https://github.com/aspnet/NodeServices) 的库可以解决问题,但它是用 Asp.net core 和 angular 2 universal 编写的,我没有使用它们。是否有任何图书馆为 asp.net 和 angular 做同样的工作? 提前致谢。

【问题讨论】:

  • 对于它的价值,Google now executes JavaScript when crawling pages,因此如今拥有单页应用程序的 SEO 影响几乎可以忽略不计。
  • @JoeClay 当我在谷歌搜索控制台中检查时,我的网页正确呈现,但 html 内容不存在。这是因为在 angular 中使用 html 5 模式路由时存在一个已知问题。所以我放弃了所有存在的部分解决方案,以使角度 SEO 友好,我愿意从根本上解决问题。
  • 好问题,没有答案。您在这里取得过成功吗?
  • 很遗憾没有,我不得不使用 phantom js。

标签: asp.net angularjs seo isomorphic-javascript rendr


【解决方案1】:

如此处所述How do search engines deal with AngularJS applications?

Google 现在在抓取网页时会执行 javascript。问题是没有标准,您不能假设任何搜索引擎在客户端呈现时都会正确抓取您的 Web 应用程序。

【讨论】:

  • 正如您所说,当搜索引擎抓取客户端呈现的 Web 应用程序时“没有标准”,所以我想要服务器端呈现。这不是我的问题的答案。