vue3 + vite动态路由打包404,找不到路由
vue
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
项目地址:https://gitcode.com/gh_mirrors/vu/vue
·
问题描述:
本地npm run dev,路由加载正常,打包后,预览npm run preview时,就会出现下面问题

解决:

在整理路由的位置引入
const modules = import.meta.glob("../views/**/**.vue");
这是后端返回的菜单
const menuList = [
{
name: 'deviceManage',
label: '设备管理',
icon: 'location',
children:[
{
path: '/deviceManage/device-list',
label: '设备列表',
name: 'device-list',
},
{
path: '/deviceManage/device-analysis',
label: '统计分析',
name: 'device-analysis',
}
]
},
]
整理为需要的动态路由: 使用引入的 modules
component: modules[`../views${childItem.path}.vue`]
menu.forEach(menuItem => {
const parentItem = {
path: menuItem.path, // 你的路径
component: () => import('@/views/Main.vue'), // 你的组件路径
name: menuItem.name,
meta: { title: menuItem.label },
children: [],
};
menuItem.children.forEach(childItem => {
let childUrl = `/src/views${childItem.path}.vue`
console.log('childUrl',childUrl);
const childRoute = {
path: childItem.path,
name: childItem.name,
meta: { title: childItem.label },
component: modules[`../views${childItem.path}.vue`]
};
parentItem.children.push(childRoute);
list.push(parentItem);
});
});
list.forEach(item => {
router.addRoute(item)
})
查看当前的路由列表
console.log('查看路由列表',router.getRoutes())
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:4 个月前 )
9e887079
[skip ci] 1 年前
73486cb5
* chore: fix link broken
Signed-off-by: snoppy <michaleli@foxmail.com>
* Update packages/template-compiler/README.md [skip ci]
---------
Signed-off-by: snoppy <michaleli@foxmail.com>
Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 1 年前
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)