Angular SEO动态站点地图(server.ts),不显示在爬网上

发布于 2025-02-06 02:10:42 字数 1738 浏览 2 评论 0原文

我的网站上有一组文章,所以我想要动态的站点地图。

我将项目转换为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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文