【问题标题】:Next.js page not found if route ends with a slash如果路由以斜线结尾,则找不到 Next.js 页面
【发布时间】:2020-01-14 17:04:41
【问题描述】:

我目前正在开发一个next.js 应用程序。我面临的问题是next/link。如果我在应用程序中导航,链接效果很好。每个页面都正确呈现。当我刷新页面并且 URL 以斜杠结尾时,问题就会出现。

http://localhost:3000/about/

上面的路由显示“找不到页面”,下面的路由会成功加载页面。

http://localhost:3000/about

我使用link如下:

<Link href="/about">
   <a>About</a>
</Link>

任何帮助将不胜感激。谢谢。

【问题讨论】:

  • 这就是它的工作方式。
  • @Nico 也许你是对的。但我正在为此寻求解决方案。我不想出现“找不到页面”错误。
  • 你可以看看这个问题:github.com/zeit/next.js/issues/5214
  • 我提出的问题有一些解决方法
  • 从 404 重定向不是一个优雅的解决方案,您应该传递正确的 url(例如,执行正则表达式并删除最后一个 /),或者如果您使用 express,则添加自定义路由

标签: javascript reactjs next.js


【解决方案1】:

我希望应该有一个最简单的方法来做到这一点。但是,您可以使用custom server 执行此操作。这是一个例子:-

server.get("/about/", (req, res) => {
  return app.render(req, res, "/about")
})

【讨论】:

  • 该操作从未提及正在使用/想要使用快递。同样使用此解决方案,他应该为每个页面添加一个路由,更好地使用 express path-to-regexp
  • 是的,应该有一个最简单的方法。这有点棘手,虽然是一个解决方案。是的,我们应该使用正则表达式。那是单身。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-18
  • 2020-10-21
  • 2016-03-27
  • 2020-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多