Node.js 如何在next.js中创建站点地图
我正在尝试将站点地图添加到我的next.js网站。我将以下代码添加到Node.js 如何在next.js中创建站点地图,node.js,next.js,Node.js,Next.js,我正在尝试将站点地图添加到我的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
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
文件位于同一位置。当我使用节点服务器在本地运行它时,请转到http://localhost:5000/sitemap.xml
它工作正常。当我将文件上传到服务器时,服务器会出现notfound
错误
我做错了什么,如何使用nextjs添加站点地图?可能只需将sitemap.xml
文件移动到公共文件夹下,例如public/sitemap.xml
,然后删除此自定义动态路由
你好,杰西卡。您如何在服务器上运行节点应用程序?还有一件事,你检查过sitemap.xml的文件权限了吗?一件事是,这是一个动态的路由,而不是一个实际的文件。因此,如果您只是部署静态内容,那么这将不起作用,您还需要在生产环境中使用完整的nextjs服务器。有一件事,我认为next.js支持公共文件夹下的静态文件,所以如果你将站点地图移动到那里,它可能只是一个静态文件。这个答案应该是可行的。我刚刚用同样的方法部署了一个Next.js应用程序。向上投票。我没有公用文件夹,我有。下一个文件夹。那就做一个吧。下一个文件夹是buildoutput,所以don';不要把任何东西放在那里,不要';不要将其提交给源代码管理。