2017-12-01 7 views
0

여기에이 작은 라우터가 있으며 기본적으로 내 사이트의 기본 언어를 갖고 싶습니다. 즉, www.example.com/about 및 www.example.com/es/about에 액세스하면 동일한 콘텐츠가 표시되어야합니다.고정 파라메터가있는 Vue-router 별칭

별칭이이 기능을 제공한다고 생각하지만 오류가 발생합니다. 접근하려고 할 때/about.

[vue-router] missing param for aliased route with path "/:language/about": Expected "language" to be defined 

언어 매개 변수가 설정되지 않았으므로 의미가 있습니다. 원하는대로 구현할 수있는 방법이 있습니까? 사용자가 별칭에 도달 할 때마다 고정 : 언어 매개 변수를 설정할 수 있습니까?

이것은 내 라우터입니다.

var routes = [ 
{ 
    path: '/:lang', 
    component: WelcomeComponent, 
    children: [ 
    { 
     path: 'hello/:name', 
     component: HelloComponent 
    } 
    ] 
}, 
path: '*', 
redirect: '/en' 
] 

각 행 이후 URL에서 LANG 설정 한 경우 : 없음 URL에 제공되지 않은 경우

router = new Router({ 
 
    routes: [ 
 
    { 
 
     path: '/:language/about', 
 
     alias: '/about' 
 
     component: About 
 
    } 
 
    ] 
 
})

답변

0

라우트의 구성은 기본적으로 같은 임의의 언어를 설정 사용자가/: lang에 직접 액세스합니다.

router.afterEach((to, from) => { 
    Vue.config.lang = to.params.lang 
} 

자주 언급하는 포럼 게시물에서이 문제를 풀고 있습니다. 또한 언어 전환기 구성 요소에 대한 일부 논리가 포함되어 있습니다. https://forum.vuejs.org/t/dynamic-base-in-vue-router/1026/4