【问题标题】:How can I create a sitemap in next.js如何在 next.js 中创建站点地图
【发布时间】:2020-05-27 02:24:10
【问题描述】:

我正在尝试将站点地图添加到我的 next.js 网站。我将以下代码添加到server.js

server.get('/sitemap.xml',  (req, res) => {
    const options = {
        root:'./',
        headers: {
          'Content-Type': 'text/plain;charset=UTF-8',
        }
      };

    return res.status(200).sendFile('sitemap.xml', options)
});

sitemap.xml 文件位于根文件夹,即与server.js 文件相同的位置。当我使用node server 在本地运行它并转到http://localhost:5000/sitemap.xml 时,它可以正常工作。当我将文件上传到服务器时,我从服务器收到 not found 错误。

我做错了什么,如何使用 nextjs 添加站点地图?

【问题讨论】:

  • 嗨,杰西卡。您如何在服务器上运行您的节点应用程序?还有一件事,你检查过 sitemap.xml 的文件权限了吗?
  • 有一点是,这是一条动态路径,而不是实际文件。因此,如果您只是部署静态内容,那么这将不起作用,您还需要在生产中拥有完整的 nextjs 服务器。有一件事,我认为 next.js 支持公共文件夹下的静态文件,因此如果您将站点地图移到那里,它可能只是作为静态文件工作。

标签: node.js next.js


【解决方案1】:

可能只是移动public/sitemap.xml等公用文件夹下的sitemap.xml文件,然后删除这个自定义动态路由。

Next.js static file serving documentation

【讨论】:

  • 这个答案应该有效。我刚刚使用相同的方法部署了 Next.js 应用程序。赞成。
  • 我没有公用文件夹,我有一个 .next 文件夹
  • 那就做一个吧。 .next 文件夹是构建输出,因此不要在其中放置任何内容,也不要将其提交给源代码管理。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-19
  • 2019-09-09
  • 2017-06-16
  • 1970-01-01
  • 2012-04-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多