根据要求在Angular中生成Sitemap.xml

时间:2019-10-17 07:59:52

标签: javascript angular typescript

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

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

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

如果用户输入以下URL,则需要捕获请求sitemap.xml。在该组件中,我将必须进行http调用以获取属于moduleA的所有站点地图网址。

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

www.example.com/moduleA/sitemap.xml

有可能做到有角度吗?如果可以,我该怎么办?

请帮助。

1 个答案:

答案 0 :(得分:0)

根据我的经验,无法使用Angular根据请求处理生成站点地图。您必须在服务器中处理此问题。是否使用Angular SSR,应通过服务器(例如快速服务器)为您的Angular应用提供服务。然后,您可以使用以下内容:

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调用。