Я пытаюсь без особого успеха выполнить перенаправление на 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>'
}
}
})
<a>
, который не обрабатывается маршрутизатором Vue? Выходит ли он из приложения? - person Mani   schedule 22.10.2016<base href="/">
. В любом случае это не имело отношения к вашему вопросу. Я опубликовал свои мысли в качестве ответа ниже, попробуйте и дайте мне знать, работает ли это! - person Mani   schedule 22.10.2016