如何在运行时以angular 9项目结构动态创建/修改sitemap.xml文件?

问题描述

如何在Angular 9项目结构中创建动态sitemap.xml文件?我可以使用来自节点API的HTTP获取请求来获取数据,但是如何使用这些数据在运行时从angular项目更新本地xml文件

在我的情况下,角度项目和节点项目位于不同的服务器(不同的域)上。并且可以在节点项目中创建XML文件,但是我无法在角度项目根目录中以xml文件的形式访问该文件

有人可以建议我如何在angular项目中使用node xml,还是可以在Angular 9中使用api调用来创建/修改动态sitemap.xml?

任何帮助将不胜感激。

解决方法

我现在正在研究同一主题,并且已经取得了一些成就。

我将它添加到angular.json文件中

sitemap.xml

然后,我创建了一个组件并将其路径指定为sitemap.xml

可以在Angular中执行服务器端渲染,这样,我们的工作就容易了一些。 Angular Server Side Rendering

您可以将新的路由添加到您的routing.module文件中,并通过server.ts

干扰此请求

例如,您可以在sitemap.xml中以这种方式访问​​类似server.ts的路由。

server.get('/sitemap.xml',(req,res,next) => { bla,bla }

您现在可以在此处访问所需的文件,并根据需要进行更改。

server.ts中的文件操作

function writeFile(sitemap: string): void {
    const fs = require('fs');
    fs.appendFile('../sitemap.xml',sitemap,(err) => {
    if (err) {
    throw err;
  }
    console.log('Saved!');
  });
}
  

然后,重定向操作

res.redirect('http://localhost:{$PORT}/sitemap.xml');

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...