Angular SEO动态站点地图(server.ts),不显示在爬网上
我的网站上有一组文章,所以我想要动态的站点地图。
我将项目转换为Angular Universal。 我已经在server.ts文件中进行了以下更改。
server.get('/sitemap.xml', sitemap);
// site map
async function sitemap(req, res) {
var oReq = new XMLHttpRequest();
oReq.onload = function (e) {
var arraybuffer = oReq.response;
try {
if (arraybuffer && arraybuffer.data) {
var urlset = '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
if (arraybuffer && arraybuffer.data && arraybuffer.data.articles && arraybuffer.data.articles.length > 0) {
arraybuffer.data.articles.forEach(item => {
if (item && item.id) {
urlset = urlset + '<url><loc>' + environment.clientHostName + '/articles/' + item.id + '/' + item.seoSlug + '</loc><lastmod>' + item.updatedAt + '</lastmod><priority>0.8</priority></url>'
}
});
}
urlset = urlset + '</urlset>';
let xmltext = '<?xml version="1.0" encoding="UTF-8"?>' + urlset;
res.type('application/xml');
res.send(xmltext);
}
} catch (err) {
console.log(err, 'ERROR IN SITEMAP');
}
}
oReq.open("GET", environment.api_url + 'common/sitemap', true);
oReq.responseType = "json";
oReq.send();
}
当我部署代码时,在浏览器中检查了 https://siteurl.com/siteurl.com/sitemap.xml
它显示XML详细信息
如何修复它?还是我做错了什么?
I have a set of articles in my site, so I wanted dynamic sitemap.
I have converted the project to angular universal.
and I have made the following changes in server.ts file.
server.get('/sitemap.xml', sitemap);
// site map
async function sitemap(req, res) {
var oReq = new XMLHttpRequest();
oReq.onload = function (e) {
var arraybuffer = oReq.response;
try {
if (arraybuffer && arraybuffer.data) {
var urlset = '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
if (arraybuffer && arraybuffer.data && arraybuffer.data.articles && arraybuffer.data.articles.length > 0) {
arraybuffer.data.articles.forEach(item => {
if (item && item.id) {
urlset = urlset + '<url><loc>' + environment.clientHostName + '/articles/' + item.id + '/' + item.seoSlug + '</loc><lastmod>' + item.updatedAt + '</lastmod><priority>0.8</priority></url>'
}
});
}
urlset = urlset + '</urlset>';
let xmltext = '<?xml version="1.0" encoding="UTF-8"?>' + urlset;
res.type('application/xml');
res.send(xmltext);
}
} catch (err) {
console.log(err, 'ERROR IN SITEMAP');
}
}
oReq.open("GET", environment.api_url + 'common/sitemap', true);
oReq.responseType = "json";
oReq.send();
}
when I deployed the code , checked in the browser it worked fine https://siteurl.com/sitemap.xml
it shows xml details
but in the crawler it shows like :
Issues
/
Duplicate pages without canonical
https://siteurl.com/siteurl.com.com/sitemap.xml
how can I fix it? or what am I doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论