diff --git a/packages/vue-app/template/index.js b/packages/vue-app/template/index.js index 13fdeca4933b..0644570f31be 100644 --- a/packages/vue-app/template/index.js +++ b/packages/vue-app/template/index.js @@ -269,7 +269,12 @@ async function createApp(ssrContext, config = {}) { // Wait for async component to be resolved first await new Promise((resolve, reject) => { - router.replace(app.context.route.fullPath, resolve, (err) => { + const { route } = router.resolve(app.context.route.fullPath) + // Ignore 404s rather than blindly replacing URL + if (!route.matched.length && process.client) { + return resolve() + } + router.replace(route, resolve, (err) => { // https://github.com/vuejs/vue-router/blob/v3.4.3/src/util/errors.js if (!err._isRouter) return reject(err) if (err.type !== 2 /* NavigationFailureType.redirected */) return resolve()