我创建了一个静态的nextjs构建,使用:npm run export
.
它成功导出,但当我在S3或任何其他Web服务器(apache with .htaccess,Nginx)上部署构建时,当路由在浏览器中复制粘贴时,它们重定向到/
,当重新加载后,在某些路由上,也被重定向到/
。
我已经尝试添加trailingSlash: true
,仍然不工作,我也尝试过:
exportPathMap: async function (
defaultPathMap,
{ dev, dir, outDir, distDir, buildId }
) {
return {
'/': { page: '/' },
'/home': { page: '/home' },
'/register': { page: '/register' },
'/login': { page: '/login' },
'/forgot_password': { page: '/forgot_password' },
}
},
仍然被重定向到根目录。在S3静态虚拟主机上进行所需的更改,如添加重定向规则和错误的index.html
,都不起作用。但在任何服务器上的端口上服务时,所有工作正常,但只有在静态构建中才会出现此问题。
1条答案
按热度按时间iq3niunx1#
我遇到了同样的问题,我尝试了exportPathMap和TrailingSlash解决方案,但对我也不起作用。
我已经通过将.htaccess文件放置在根目录中修复了它,代码如下:
也许你可以在这里找到更多信息:https://github.com/vercel/next.js/discussions/10522?sort=top