diff --git a/lib/app/index.js b/lib/app/index.js index 60a6964e65..2e7fe7eab0 100644 --- a/lib/app/index.js +++ b/lib/app/index.js @@ -7,7 +7,7 @@ import NuxtLink from './components/nuxt-link.js' import NuxtError from '<%= components.ErrorPage ? components.ErrorPage : "./components/nuxt-error.vue" %>' import Nuxt from './components/nuxt.vue' import App from '<%= appPath %>' -import { getContext } from './utils' +import { getContext, getLocation } from './utils' <% if (store) { %>import { createStore } from './store.js'<% } %> <% plugins.forEach(plugin => { %>import <%= plugin.name %> from '<%= plugin.name %>' <% }) %> @@ -61,7 +61,7 @@ async function createApp (ssrContext) { // making them available everywhere as `this.$router` and `this.$store`. const app = { router, - <% if(store) { %> store,<% } %> + <% if(store) { %> store,<% } %> _nuxt: { defaultTransition, transitions: [ defaultTransition ], @@ -99,14 +99,18 @@ async function createApp (ssrContext) { } const next = ssrContext ? ssrContext.next : location => app.router.push(location) - + let route = router.currentRoute + if (!ssrContext) { + const path = getLocation(router.options.base) + route = router.resolve(path).route + } const ctx = getContext({ isServer: !!ssrContext, isClient: !ssrContext, - route: router.currentRoute, + route, next, error: app._nuxt.error.bind(app), - <% if(store) { %>store,<% } %> + <% if(store) { %>store,<% } %> req: ssrContext ? ssrContext.req : undefined, res: ssrContext ? ssrContext.res : undefined, }, app) @@ -121,8 +125,8 @@ async function createApp (ssrContext) { return { app, router, - <% if(store) { %> store <% } %> + <% if(store) { %> store <% } %> } } -export { createApp, NuxtError } \ No newline at end of file +export { createApp, NuxtError }