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())
GitHub 加速计划 / vu / vue
207.55 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:3 个月前 )
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> 5 个月前
e428d891
Updated Browser Compatibility reference. The previous currently returns HTTP 404. 5 个月前
更多推荐
已为社区贡献1条内容
所有评论(0)