首页 > 解决方案 > 为什么需要 Angular Universal?

问题描述

所以显而易见的答案是它是必要的,因为它提供来自服务器的路由路径,所以我们不会得到 404。

然而,像angular-cli-ghpages这样的解决方案通过向应用程序添加一个脚本来解决这个问题,该脚本解析在 404 中返回的参数,然后将应用程序重新路由到正确的状态。

所以只是好奇这有什么缺点吗?为什么一般不使用它,而不是像 Angular Universal 或 Rendertron 这样的解决方案?

例如,这就是spa-github-pages所说的:

快速的 SEO 说明 - 虽然 404 响应从来都不是一件好事,但它似乎基于 Search Engine Land 的测试,即 Google 的爬虫会将 404.html 文件中的 JavaScript window.location 重定向与 301 重定向一样处理其索引。根据我的测试,我可以确认 Google 将毫无问题地索引所有页面,唯一需要注意的是重定向查询是 Google 索引为 url 的内容。例如,url example.tld/about 将被索引为 example.tld/?p=/about。当用户点击搜索结果时,一旦网站加载,url 将变回 example.tld/about。

标签: javascriptangulartypescriptangular-universalrendertron

解决方案


因为两个主要的事情:

  1. 首页加载速度;
  2. 搜索引擎优化

机器人不运行 javascript,因此它们解析从服务器获取的内容,而不是 Universal 出现的内容。

即使使用由 ghpages 提供的 --aot 构建的应用程序,其 404 页面是索引的克隆,客户端/机器人仍​​然需要获取第一个文件,解析它们并最终挂载最终视图。Gh 页面不提供最终的 html 状态。


推荐阅读