问题描述
如何在Angular 9项目结构中创建动态sitemap.xml文件?我可以使用来自节点API的HTTP获取请求来获取数据,但是如何使用这些数据在运行时从angular项目更新本地xml文件?
在我的情况下,角度项目和节点项目位于不同的服务器(不同的域)上。并且可以在节点项目中创建XML文件,但是我无法在角度项目根目录中以xml文件的形式访问该文件。
有人可以建议我如何在angular项目中使用node xml,还是可以在Angular 9中使用api调用来创建/修改动态sitemap.xml?
任何帮助将不胜感激。
解决方法
我现在正在研究同一主题,并且已经取得了一些成就。
我将它添加到angular.json
文件中
然后,我创建了一个组件并将其路径指定为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');