How to have a different "default" page in nested routing
Hey there !
I'm facing an issue related to nested routing. Using the following folder structure:
I would like the route under
providers/[provider]/domains/[domain]/
to be set by default to providers/[provider]/domains/[domain]/general-information
because my UI does not need an "index" page for the details of a domain and the "default" page when navigating to /providers/1/domains/1
should be /providers/1/domains/1/general-informations
.
I'm using Nuxt i18n with a prefix_and_default
stategy, so I can't setup an alias in general-informations.vue
using definePageMeta
because I can't access the local in a simple way there.
I'va also tried setting up a middleware in index.vue
like this :
But, even if I can successfully log a message inside my if
statement, the redirection does not happen (which is weird since the same call in something like onMounted
works).
Do you have any idea of how I could make it work ?9 Replies
if you can log a message inside the if then surely it's an issue with
navigateToLocalePath
right?
Try with a normal navigateTo
and see if that worksYeah I tried that already, didn't work 😅 (I had no doubt it woudln't, since
navigateToLocalePath
is working as intended in other middlewares in the same application)try a non async function and instead of awaiting, return navigateTo() ?
Ooooh that might work
Yeah that did it, can't believe I didn't think of it. Thanks a lot for the help !
You could also redirect using:
in your index.vue (providers-provider-domains-domain)
oh that's nice didn't know about that
Neither did I and its quite nice !
Be aware that both routes will render, thus analytics for example will be triggered for both.
thanks, it helped