ログアウトリンクをクリックしているユーザーをサーバーでレンダリングされたログアウトページにリダイレクトしようとしています。しかし、以下のコードでは、デフォルトのパスにリダイレクトされます。
flaskに次のようにサーバールートを設定しています:
@app.route('/logout')
def logout():
logout_user()
return render_template('login.html')
In vueサーバールートに誘導されるように、ルートをリダイレクトしたい。
<template>
<a v-on:click="logout">Logout</a>
</template>
<script>
export default {
name: SomePage.vue
},
methods: {
logout () {
this.$router.replace('/logout')
// I also tried .go('/logout')
}
}
</script>
次に、ルーターにルートを設定する必要がありますか?
export default new Router {
routes: {
{
path: '/'
component: Default
children: [
{
path: '/logout'
// no component added here - is it needed?
}
]
}
}
すでに/ logoutにリダイレクトしているので、ベースの/ logoutに移動して、サーバーから返される.htmlページを取得したいだけなので、このルートにコンポーネントを追加することがどのように役立つかわかりません。何か案は?
$router
メソッドを介してウィンドウの場所を操作しても、ブラウザーはページ全体のリロードを実行しません。これは、この場合に必要なことです。ウィンドウの場所を手動で設定する必要があります。
window.location.replace('/logout')
私はいくつかの問題を抱えており、解決策を見つけています... vuejs2 +でこれを試してください
this.$router.Push('/logout')