最佳答案
我试图重定向到没有使用 router.beforeEach
全局钩子找到的页面上的404.html,但是没有多少成功(使用 Vue
和 Vue-Router
1.0) :
router.beforeEach(function (transition) {
if (transition.to.path === '/*') {
window.location.href = '/404.html'
} else {
transition.next()
}
});
这并不是在插入不存在的路由时重定向到页面 404.html
,而只是给我一个空的片段。只有当硬编码 some-site.com/* 时,它才会重定向到预期的 some-site.com/404。Html
我肯定这里有些很明显的东西我忽略了,但是我不知道是什么。
请注意,我正在寻找的是一个 重定向到一个新页面,而不是重定向到另一个路由,这可以很容易地实现使用 router.redirect
,如在这些代码片段:
router.redirect({
'*': '404'
})
然而在我的 router.map
上,我可以有以下几点:
router.map({
'/404': {
name: '404'
component: {
template: '<p>Page Not Found</p>'
}
}
})