Я пытаюсь перенаправить на 404.html на странице, не найденной с использованием глобального тэга router.beforeEach
, без особого успеха (используя 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>'
}
}
})