我遵循了Next.js的示例,介绍了如何create Server Side Support for Clean URLs,但是该示例仅支持传递一个参数
一切正常,我也在github上找到了如何add multiple parameters到Next.js路由的信息。
server.get('/question/:id/:subject', (req, res) => {
const actualPage = '/question'
const mergedQuery = Object.assign({}, req.query, req.params)
app.render(req, res, actualPage, mergedQuery)})
来自组件的链接如下所示
<Link as={`/question?id=${questionId}&subject=${subject}`} href={`/question?id=${questionId}&subject=${subject}`} ><a>{question}</a></Link>
这也很好。 我的挑战是,当我尝试如下所示屏蔽url时,刷新页面时我得到了404页面。
server.get('/q/:id/:subject', (req, res) => {
const actualPage = '/question'
const mergedQuery = Object.assign({}, req.query, req.params)
app.render(req, res, actualPage, mergedQuery)})
组件链接
<Link as={`/q?id=${questionId}&subject=${subject}`} href={`/question?id=${questionId}&subject=${subject}`} ><a>{question}</a></Link>
答案 0 :(得分:1)
在Google上苦苦挣扎并玩了几个小时的代码后,此修复程序使我可以将多个参数传递给Next.js url,并且页面刷新应用程序仍然可以正确加载。
<Link as={`/q/${questionId}/${subject}`} href={`/question?id=${questionId}&subject=${subject}`} ><a>{question}</a></Link>