2017-12-01 9 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 

これは意味があります:言語パラメータが設定されていないため、私が欲しいものを実装できる方法はありますか?ユーザーがエイリアスに当たるたびに、固定:言語パラメータを設定できますか?

これは私のルーターです。

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

答えて

0

何もURLで提供されていない場合のルートの設定は、デフォルトとして、任意の言語を設定する:場合

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

は、各ルートの後のURLからlangの設定ユーザーは/に直接アクセスできます:lang

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

私は頻繁に参照するフォーラム投稿からこれを引っ張っています。言語切り替えコンポーネントのロジックも含まれています。https://forum.vuejs.org/t/dynamic-base-in-vue-router/1026/4

関連する問題