Next.js App Router路由疑问:路径层级与页面命名规则问题
问题原因与解决方案
1. 访问路径为url/pages/test的原因
Next.js App Router(即你选择的/app目录模式)的路由规则是文件夹结构直接映射URL路径:
- 你在
/app下创建了/pages/test文件夹,内部的page.tsx会被解析为/pages/test路径,完全对应你创建的文件夹层级。 - 若要实现
url/test的访问路径,需直接在/app目录下创建test文件夹,再在其中放置page.tsx,即目录结构为:app/ test/ page.tsx
2. 无法用index替代page作为索引文件名的原因
App Router与传统的Pages Router(旧版/pages目录模式)的路由入口规则完全不同:
- App Router强制要求每个路由段的入口文件名为
page.tsx,不识别index.tsx作为路由入口。 - 只有Pages Router才会将
index.tsx解析为当前文件夹的默认路由,这是两种路由系统的核心差异。
3. 你尝试的两种方法无效的原因
- 将
/pages移至/app外:此时/pages会被识别为Pages Router的目录,但你的项目默认启用的是App Router且优先级更高;同时Pages Router的入口文件规则是index.tsx或直接命名为路由名的文件(如test.tsx对应/test),你如果还是用page.tsx的话,Pages Router也不会识别。 - 直接在
/app下创建test.tsx:App Router要求路由必须以文件夹+page.tsx的形式存在,直接在/app下创建单个文件不会被解析为路由,必须包裹在对应名称的文件夹中。
内容的提问来源于stack exchange,提问作者blaize
相关产品推荐
相关产品推荐

