Next.js 动态站点地图提交给 Google 失败

问题描述

我想创建一个 API 来发送动态站点地图 XML。因为我是写博文的,所以我希望每次在我的博文中发一篇文章的时候,这个都会自动添加到XML文件中。

这是我使用 Next.js 的 API 代码

enum URLFrequence {
  ALWAYS = 'always',HOURLY = 'hourly',DAILY = 'daily',WEEKLY = 'weekly',MONTHLY = 'monthly',YEARLY = 'yearly',NEVER = 'never'
}

const generateXMLURL = (
  url: string,date: string,frequence: URLFrequence,priority: number = 0.5
) => `
  <url>
    <loc>${url}</loc>
    <lastmod>${date}</lastmod>
    <changefreq>${frequence}</changefreq>
    <priority>${priority}</priority>
  </url>
`;

export default async (req: NextApiRequest,res: NextApiResponse) => {
  const prismicQuery: string[] = [
    Prismic.Predicates.at('document.type',PrimsicTypes.BLOG_POSTS)
  ];
  const { results }: ApiSearchResponse = await Prismicclient(req).query(
    prismicQuery,{
      fetchLinks: ['authors.name','categories.name'],orderings: [`[my.${PrimsicTypes.BLOG_POSTS}.creation_date desc]`],pageSize: BLOG_PAGE_MAX
    }
  );

  const lastWeek: number = new Date().setDate(new Date().getDate() - 7);
  const yesterday: number = new Date().setDate(new Date().getDate() - 1);
  const today: number = new Date().getTime();
  const urls: string[] = [
    generateXMLURL(
      'https://www.lechronograph.com',getRandomDate(lastWeek,today),URLFrequence.MONTHLY,1
    ),generateXMLURL(
      'https://wwww.lechronograph.com/bog',getRandomDate(yesterday,URLFrequence.DAILY,0.5
    ),generateXMLURL(
      'https://www.lechronograph.com/mentions-legales','2021-01-01',URLFrequence.YEARLY,0.2
    ),generateXMLURL(
      'https://www.lechronograph.com/lechronograph-inside','2021-02-01',0.4
    ),generateXMLURL(
      'https://www.lechronograph.com/investissement',URLFrequence.WEEKLY,0.4
    )
  ];

  for (const result of results) {
    urls.push(
      generateXMLURL(
        `https://www.lechronograph.com/blog/articles/${result.data.slug}`,0.5
      )
    );
  }

  const xmlTemplate: string = `
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
      ${urls.join('')}
    </urlset>
  `;

  res.setHeader('Content-Type','application/xml');
  res.send(xmlTemplate);
};

当我访问我的网站时:https://www.lechronograph.com/api/sitemap 我可以看到站点地图。但是当我把它提交给谷歌时。有一个问题,我不知道它来自哪里。该错误表明无法读取 XML 文件

enter image description here

您认为我的 XML 文件有问题吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

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