Я использую Vue Router с Vue 3 и пытаюсь добавить универсальный маршрут для перенаправления пользователя, если он попытается получить доступ к недопустимому URL-адресу. Когда я пытаюсь использовать подстановочный знак (*), в консоли регистрируется следующая ошибка:
Uncaught Error: A non-empty path must start with "/"
at tokenizePath (vue-router.esm.js?8c4f:975)
at createRouteRecordMatcher (vue-router.esm.js?8c4f:1106)
at addRoute (vue-router.esm.js?8c4f:1190)
at eval (vue-router.esm.js?8c4f:1335)
at Array.forEach (<anonymous>)
at createRouterMatcher (vue-router.esm.js?8c4f:1335)
at createRouter (vue-router.esm.js?8c4f:2064)
at eval (index.js?a18c:26)
at Module../src/router/index.js (app.js:1402)
at __webpack_require__ (app.js:854)
Я предполагаю, что это потому, что я не добавляю путь, содержащий звездочку, с помощью '/', но если я сделаю это, то уловка не сработает. Вот мои маршруты:
imports...
const routes = [
{
path: '/',
name: 'Home',
component: Home
},
{
path: '/user',
name: 'User',
// route level code-splitting
// this generates a separate chunk (user.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import(/* webpackChunkName: "user" */ '../views/user/User.vue'),
children: [{path: '', component: UserStart}, {path: ':id', component: UserDetail}, {path: ':id/edit', component: UserEdit, name: 'userEdit'}]
},
{path: '/redirect-me', redirect: '/user'},
{path: '*', redirect: '/'}
]
const router = createRouter({
history: createWebHashHistory(),
routes
})
export default router
Маршрут с подстановочными знаками - это последний объект в массиве маршрутов. Кто-нибудь знает, что я делаю не так?