Next.js项目中如何隐藏pages目录下的指定路由?
可以实现,以下是几种实用的操作方法:
下划线前缀命名
Next.js 默认会忽略 pages 目录下以下划线(_)开头的文件和子文件夹,不会为它们生成对应的路由。这类文件可当作内部模块,在其他页面组件中导入使用。比如你创建pages/_internal-tool.js,部署后不会出现/internal-tool路由,完全不影响你在其他页面里import { someFunc } from './_internal-tool'调用里面的逻辑。通过 next.config.js 配置排除路由(Next.js 12.2+)
在项目根目录的next.config.js中,利用实验性配置项experimental.excludeRoutes指定需要排除的路由路径(注意填的是路由路径,不是文件名),还支持通配符匹配批量排除。示例配置如下:module.exports = { experimental: { excludeRoutes: ['/admin', '/internal/*'] } }注意:这个特性目前属于实验性,后续版本可能有变动,使用前确认你当前的Next.js版本是否支持。
移出pages目录(最稳妥方案)
如果某些文件只是工具函数、通用组件或者内部业务逻辑,根本没必要放在pages目录里。直接把它们移到项目根目录下的utils、components这类自定义目录中,既不会生成多余路由,还能让项目结构更清晰。比如创建src/components/BaseLayout.js,在pages的页面组件里通过import BaseLayout from '../components/BaseLayout'导入使用就行。
内容的提问来源于stack exchange,提问作者Andrés F Ariza Calderón
相关产品推荐
相关产品推荐

