首页 > 解决方案 > 在 Angular 中根据请求生成 Sitemap.xml

问题描述

我知道我们可以在构建时生成站点地图并将其存储在资产文件夹中。

www.example.com/sitemap.xml - This is the root level sitemap.

但我想知道如何根据要求生成站点地图。例如。

如果用户输入以下 URL,我需要捕获请求sitemap.xml。在组件中,我必须进行 http 调用以获取所有属于moduleA.

然后提供 sitemap.xml 而不抛出错误或路由到错误页面?

www.example.com/moduleA/sitemap.xml

有可能做到有角吗?如果是这样,我该怎么做?

请帮忙。

标签: javascriptangulartypescript

解决方案


根据我的经验,使用 Angular 来处理根据请求生成站点地图是不可能的。您必须在服务器中处理此问题。无论是否使用 Angular SSR,您的 Angular 应用程序都应该通过服务器提供服务,例如 express 服务器。然后你可以使用这样的东西:

app.get("/sitemap.xml", (req, res) => {
  const xml = generatingXML();
  res.setHeader("Content-Type", "application/xml");
  res.end(xml);
});

把上面的代码放在你的捕获所有服务角度的路线上。您可以使用axios https://github.com/axios/axios在服务器上进行 api 调用。


推荐阅读