You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为App Router与Pages Router设置不同页面扩展名?

能否为Next.js的App Router和Pages Router配置不同页面扩展名?

Next.js本身不支持直接通过扩展名让不同路由系统加载对应文件,但可以通过目录结构+配置约定实现你要的效果:

  • 配置Pages Router仅识别.page.tsx后缀
    在项目根目录的next.config.js中,通过pageExtensions指定Pages Router的页面文件扩展名:

    /** @type {import('next').NextConfig} */
    const nextConfig = {
      pageExtensions: ['page.tsx', 'page.ts', 'page.jsx', 'page.js'],
    }
    
    module.exports = nextConfig
    

    配置后,pages/目录下只有后缀为.page.tsx(及上述其他指定后缀)的文件会被Pages Router解析为页面。

  • App Router使用默认.tsx后缀
    App Router默认会识别app/目录下的.tsx、.ts等文件作为页面或组件,无需额外配置。只要将对应文件放在app/目录下,使用.tsx后缀即可由App Router加载。

注意事项

  • 两个路由系统的核心区分是目录结构,扩展名配置只是筛选当前目录下的有效页面文件。比如app/目录下的.page.tsx文件依然会被App Router处理,pages/下的.tsx文件如果不在pageExtensions列表中,不会被Pages Router加载。
  • 确保你的Next.js版本为13+,该版本支持同时启用App Router和Pages Router(混合路由),只要项目中同时存在app/和pages/目录即可。

内容的提问来源于stack exchange,提问作者Timothy Oliver

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 05:12:03