Next.js Router问题:点击动态产品链接出现404页面未找到
解决Next.js动态路由404问题
根据你的描述和文件结构,以下是几个可能的错误点和对应解决方法:
确认动态路由文件命名规则
从截图看,products文件夹下的[id].js命名符合Pages Router的动态路由规范,路径/products/${props.product._id}和该文件的层级是匹配的,这部分本身没问题。确保
_id是字符串类型
如果你的_id是MongoDB的ObjectId这类非字符串类型,直接拼接会生成[object Object]这类无效路径,导致404。修改链接代码:<Link href={`/products/${props.product._id.toString()}`}>重启开发服务器
Next.js识别新路由文件时,有时需要重启npm run dev才能生效,尤其是刚创建完[id].js文件的场景。检查自定义路由配置
查看项目根目录的next.config.js,如果存在rewrites或redirects配置,确认它们没有拦截/products/:id路由的正常访问。验证实际跳转路径
点击链接后查看浏览器地址栏,确认路径是/products/xxx格式(xxx为有效产品ID),没有多余斜杠或无效字符。
内容的提问来源于stack exchange,提问作者Mat
相关产品推荐
相关产品推荐

