Этот вопрос обсуждался несколько раз ( 1 - 2 ), но я все еще не могу заставить его работать. Я перевожу наш проект, чтобы использовать vue в некоторых частях. То, что я хочу сделать, это:
- Если url начинается с
/v/
, посмотрите на маршрутизатор vue и укажите путь.
- Если url начинается с чего-то, кроме
/v/
, игнорируйте его (это представление будет отображаться текущей платформой из бэкэнда).
Мой роутер выглядит так:
const router = new Router({
base: '/v/',
mode: 'history',
routes: routes
});
Где маршруты:
const routers = [
...
{
path: '/wholesale-catalogue/',
name: 'wholesale-catalogue',
component: () => import('./views/WholesaleCatalogue.vue')
}
...
]
Второй вариант, который я попробовал, это вложение дочерних маршрутов:
const router = new Router({
mode: 'history',
routes: [
{ path: 'v', component: BaseView, children: routers }
]
});
Проблема в том, что при нажатии на веб-сайте маршрутизатор перенаправляет не /v/
URL-адреса в /v/
, например:
ourwebsite.com/home/
-> содержит ссылки, например /about/
. Когда вы нажимаете /about/
, он на самом деле переходит к ourwebsite.com/about/
на несколько секунд, но затем URL меняется на /ourwebsite.com/v/about/
. Это вызывает некоторые неудобства, так как при обновлении веб-сайта этот URL не существует (в нашей текущей базовой структуре), поэтому он не будет отображаться.