我正在尝试创建一个博客页面,其中/
,/category
,/category/subcategory
都输出相同的页面。 /category/subcategory/blogname
输出另一个页面。
为此,我在app.prepare语句中使用以下代码设置了自定义快递服务器。
server.get('/:category', (req, res) => {
const params = { category: req.params.category };
return app.render(req, res, '/', params);
});
server.get('/:category/:subcategory', (req, res) => {
const params = {
category: req.params.category,
subcategory: req.params.subcategory,
};
return app.render(req, res, '/', params);
});
server.get('/:category/:subcategory/:id', (req, res) => {
const params = {
category: req.params.category,
subcategory: req.params.subcategory,
id: req.params.id,
};
return app.render(req, res, '/article', params);
您可以看到/,/ category和/ category / subcategory都呈现同一页面,即“ /”(页面文件夹中的index.js文件),而“ / category / subcategory / blogname”将呈现文章页面(存在于页面文件夹中)。
我能够从“ /”导航到“ / category / subcategory / blogname”,但是当我单击链接时,应该使我从“ / category / subcategory / blogname”回到“ /” 。
以下是我如何使用next/link
创建链接的方法。
<Link href="/"><a>Home</a></Link>
<Link href="/?category=sports" as="/sports"><a>Categories</a></Link>
<Link href="/?category=sports&subcategory=golf" as="/sports/golf"><a>Sub Categories</a></Link>
<Link to="/article?category=sports&subcategory=golf?id=11" as="/sports/golf/11">Post</Link>
要注意的重要一点是,我能够从“ /”转到 “ / category / subcategory / blogname”,然后使用 提到的链接。但是错误仅在我启动页面时发生 来自“ / category / subcategory / blogname”。那就是我重新加载页面时 在“ / category / subcategory / blogname”或在 “ / category / subcategory / blogname”是我在 提到的博客应用。