Я новичок в vue и vue router и использую Vue router в режиме истории. Приложение содержит меню, которое динамически загружается
<router-link
tag="li"
class="link"
v-for="item in menu"
v-bind:key="item.id"
:to="item.slug"
:exact="item.slug === '/' ? true : false">{{ item.content }}
</router-link>
Это работает хорошо, пока я остаюсь в родительских маршрутах, таких как http://localhost:8080/posts
Как только я прохожу уровень глубже, например, на пост с идентификатором 8 http://localhost:8080/posts/8
с роутером ссылка внутри шаблона
<router-link
tag="h2"
class="link"
:to="{ name: 'post', params: { id: post.id }}">
{{ post.title.rendered }}
</router-link>
это работает одним способом, но не возвращается к родительскому маршруту, когда я щелкаю по основным навигационным ссылкам. Вместо этого просто добавьте ссылку главного меню в конец маршрута, например, вместо http://localhost:8080/posts
http://localhost:8080/posts/posts
роутер
const router = new Router({
mode: 'history',
base: '',
routes: [
{ path: '/', name: 'home', component: HomePage },
{ path: '/posts', name: 'posts', component: PostsPage },
{ path: '/posts/:id', name: 'post', component: SinglePost },
{ path: '/projects', name: 'projects', component: ProjectsPage },
{ path: '/projects/:id', name: 'project', component: ProjectPage },
{ path: '/:page', name: 'page', component: SinglePage },
{ path: "*", redirect: '/' },
],
// etc..
});
Полагаю, я совершаю распространенную ошибку, но не могу найти решение. Любая помощь приветствуется.