我有一个nextjs应用程序,在我的server.js上有此应用程序:
server.get('/recipes/:urlId', (req, res) => {
const actualPage = '/recipe'
const queryParams = { urlId: req.params.urlId }
app.render(req, res, actualPage, queryParams)
})
因此,基本上,每当我尝试到达/ recipes / {something}时,它都会使用queryParams呈现页面。 以后将使用它来调用一个api,在将其显示给用户之前,它将获取实际的食谱信息。
如果用户从应用程序中导航,则可以正常工作,我可以正确地传递参数,并且一切正常。
但是,如果我获得该网址并将其直接粘贴到该网址上,则会得到404而不是配方。
在本地运行可以正常工作,但是当我将其部署到Zeit时遇到了这个问题。 我需要在此处进行配置吗?它使用我在本地应用程序上设置的server.js还是使用其他内容?
答案 0 :(得分:0)
问题在于网址使服务器搜索文件夹配方并搜索已通过urlId
的文件夹。
有两种方法可以做到这一点。
1)因此,您必须告诉服务器不要查找文件夹,只需将任何URL的URL重定向到index.html页
或
2)您可以使用哈希策略使网址具有#个位置路径
在Router not working处查看其他解决方案。
或者您可以为服务器端更改添加htaccess文件