我的目标
我想将我的Next.js应用程序与nginx部署到子路径。
我的设置如下:
- Nginx配置
location /subpath/ {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 1m;
proxy_connect_timeout 1m;
proxy_pass http://localhost:3030/;
}
- next.config.js
module.exports = {
basePath: '/subpath'
}
麻烦
此next.config.js导致mydomain.com/subpath/为404。
否则,mydomain.com/subpath/subpath显示页面。〉〈
(all其他页面也需要/subpath/subpath/xxx)
(每个链接href都指向404,所以我在地址栏中输入**/subpath/subpath/**来确认页面。
其他信息
next.js的版本是10.0.4
如何解决?
我很高兴能够获得将next.js应用程序部署到子路径的知识。最简单的方法更好。
我会很感激任何建议。先谢谢你。
2条答案
按热度按时间8ehkhllq1#
根据配置这里的问题是尾部的斜杠,
改成这个
完整的配置如下所示
背后的原因是默认情况下Next.js会将带斜杠的url重定向到不带斜杠的url。根据docs
但是你在Nginx配置中提到你的URL应该有尾随的斜杠。然后它会返回404。
cu6pst1q2#
摘要
1.修改
next.config.js
,增加basePath: '/subpath'
。1.如果您使用的是
public
文件夹中的静态文件,请修改您使用的src
,例如,1.请记住,禁用您的浏览器缓存,当你尝试它。
真实的样本
conf(我的下一个项目运行在4000端口上)
next.config.js