我创建了一个如下的route.js文件:
const nextRoutes = require('next-routes');
const routes = module.exports = nextRoutes();
routes.add
('presenterallcurrent', '/presenter/:ccyear','speaker');
routes.add
('speakersessiondetail', '/presenter/:ccyear/:slugSpeaker','speakerdetail');
我希望当我浏览到以下内容时:
/presenter/2018/douglas-crockford-1124
我将被带到我的/pages/speakerdetail.js文件中,其中query.ccyear和query.slugSpeaker填充到2018年,而douglas-crockford-1124
我希望当我浏览到
/presenter/2018
我将被带到/pages/speaker.js并将query.ccyear设置为2018
第二种情况按我预期的那样工作(/ presenter / 2018)确实将我带到/pages/speaker.js,但是(/ presenter / 2018 / douglas-crockford-1124给了我404。
我不明白什么,为什么它不起作用?
在我的/ pages / speaker和/ pages / speakerdetail中:
static async getInitialProps({query}) {...}
答案 0 :(得分:0)
对于路线中的可选参数,请添加尾随?
并调整speaker.js
以根据query.slugSpeaker
是否未定义来呈现年视图或详细视图。
routes.add
('speaker', '/presenter/:ccyear/:slugSpeaker?');