javascript - 为什么需要 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。
解决方案
因为两个主要的事情:
- 首页加载速度;
- 搜索引擎优化
机器人不运行 javascript,因此它们解析从服务器获取的内容,而不是 Universal 出现的内容。
即使使用由 ghpages 提供的 --aot 构建的应用程序,其 404 页面是索引的克隆,客户端/机器人仍然需要获取第一个文件,解析它们并最终挂载最终视图。Gh 页面不提供最终的 html 状态。
推荐阅读
- firebase - 无效写入的 Firestore 计费
- python - 如何检查方法是否被子类覆盖?
- php - Twig 中的全球原始逃逸
- swift - RealityKit – 在赛车游戏中移动实体
- python - 在python中将数据输出到csv
- ios - 如何从原生 iOS 设置初始路由
- python - 如何在python中的同一轴上绘制两个具有不同时间频率的时间序列数据?
- vba - 无法验证表单(不是用户表单)中的 activex 文本框,只是 Word 文档本身中的一个表单
- python - Matplotlib ginput 导致图像不出现
- sql-server - 如何取回 SQL Server 使用的空间?