羽沢31 2025-11-12 16:25 采纳率: 0%
浏览 7

vue自动路由生成问题

vite-plugin-pages 插件自动生成的vue路由(以views为基准生成),如果文件结构如下:

img


为什么生成的 /admin 路由和 /admin/dataStatistics是平级的,也就是说/admin/dataStatistics不是/admin的children路由?

img


或者按照这种结构让其自动生成路由,也不是嵌套关系

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2025-11-12 16:30
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    问题分析

    你使用了 vite-plugin-pages 插件自动生成 Vue 路由,文件结构如下:

    views
    admin
    index.vue
    dataStatistics.vue
    

    但是生成的路由 /admin/admin/dataStatistics 是平级的,这意味着 /admin 不是 /admin/dataStatistics 的父路由。

    解决方案

    这是因为 vite-plugin-pages 默认会将所有 views 文件夹下的文件都作为顶级路由。要解决这个问题,你可以在 vite-plugin-pages 的配置文件中指定 prefix 选项,例如:

    import { defineConfig } from 'vite';
    import pages from 'vite-plugin-pages';
    
    export default defineConfig({
      plugins: [
        pages({
          prefix: 'admin/', // 指定前缀
        }),
      ],
    });
    

    这样一来,生成的路由 /admin/admin/dataStatistics 就会正确地建立父子关系。

    注意

    如果你有多个 views 文件夹,需要指定不同的前缀,你可以使用 prefix 选项的数组形式,例如:

    import { defineConfig } from 'vite';
    import pages from 'vite-plugin-pages';
    
    export default defineConfig({
      plugins: [
        pages({
          prefix: ['admin/', 'user/'], // 指定多个前缀
        }),
      ],
    });
    

    这样一来,生成的路由 /admin/admin/dataStatistics 就会正确地建立父子关系。

    评论

报告相同问题?

问题事件

  • 创建了问题 11月12日