代码之家  ›  专栏  ›  技术社区  ›  Phil

动态内容的角度通用?

  •  7
  • Phil  · 技术社区  · 7 年前

    我想用Angular Universal做两件事:SEO和在社交媒体上预览网站。我知道这是可能的静态网站内容。

    但动态内容呢?如果我希望搜索引擎和社交媒体爬虫不仅能找到带有欢迎屏幕的主站点,还能找到像 www.example.com/posts?articleName=what-is-angular-universal-good-for ?这里是路线 /posts 由订阅queryParam的PostsComponent处理 articleName 。因此,它总是呈现从数据库动态获取的文章。

    Angular Universal的服务器端渲染会在这里应用吗?

    我看到Universal确实有一个叫做TransferState的东西。但这能用于动态内容吗?我假设,如果每次更新posts DB时都重建服务器端应用程序,它应该能够在每个(动态解析的)post上运行渲染。E、 g.这是服务器端代码的操作列表:

    1. 预渲染主站点
    2. 从数据库加载所有可能的博客文章URL的数组
    3. 获取它们的内容并预呈现其中的每一个
    4. 当用户请求一篇博客文章时,只会向主站点和该文章提供服务。所有其他帖子都是预呈现的,也可以在服务器上使用,但除非明确请求,否则不会传递

    那么这是可能的,还是我应该停止进一步研究宇宙?

    2 回复  |  直到 7 年前
        1
  •  4
  •   nicowernli    7 年前

    Angular服务器端将与任何其他服务器端平台一样工作。如果你必须从url获取文章,将呈现该文章的信息,这与Wordpress或Django网站在这方面没有什么不同。

    Angular TransferState只是一种将您在服务器中收集的所有信息传递给客户端的机制,这样当应用程序在客户端启动时,您就不必再次执行某些请求。因此,您可能需要一些HTTPIntercorper在执行请求之前检查TransferState,以确保信息尚未存在。

        2
  •  1
  •   Coding Geek    3 年前

    一旦添加angular universal,它将自动添加ssr,并自动加载动态内容。如果未加载,则通过在本地运行命令“ng run blog:serve ssr”(blog是项目名称)来检查控制台。应该有一些错误,这就是为什么它不会加载。解决问题后,它将自动加载动态内容。

    注意:预渲染不允许加载动态内容,只有服务器端渲染才允许加载。

    推荐文章