Next.js如何让next.config.js配置的路由优先级高于默认文件路由
问题原因
你当前的配置效果符合exportPathMap的设计预期,该配置仅用于next export静态导出阶段生成额外的静态页面入口,不会拦截、覆盖Next.js默认的文件系统路由,因此原来的/路径依然可以正常访问,该配置本身不存在路由优先级的相关设置。
解决方案
你可以改用rewrites+redirects组合配置实现需求,无需调整项目文件夹结构:
rewrites用于将你自定义的路径映射到对应页面的内容redirects用于将原有文件系统路由的访问请求跳转到你自定义的路径,避免原路径被直接访问
参考配置如下:
module.exports = { reactStrictMode: true, async redirects() { return [ { source: '/', destination: '/hello', permanent: true, // 设为true返回301永久重定向,设为false返回302临时重定向,可按需调整 }, ] }, async rewrites() { return [ { source: '/hello', destination: '/', }, ] }, }
如果要完全禁用默认文件系统路由,仅通过配置文件管理所有路由,你可以将所有页面文件放到pages/_internal这类不会被Next.js默认解析为路由的文件夹下,再统一通过rewrites配置自定义路径和页面文件的映射关系即可。
内容的提问来源于stack exchange,提问作者Marco
相关产品推荐
相关产品推荐

