我试图重定向到使用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>'
}
}
})
@mani的原始答案是您想要的,但是如果您也想以正式的方式阅读它,这里是
参考Vue的官方页面:
https://router.vuejs.org/guide/essentials/history-mode.html#caveat