defineRouteRules
Define route rules for hybrid rendering at the page level.
This feature is experimental and in order to use it you must enable the
experimental.inlineRouteRules option in your nuxt.config.Usage
app/pages/index.vue
<script setup lang="ts">
defineRouteRules({
prerender: true,
})
</script>
<template>
<h1>Hello world!</h1>
</template>
Will be translated to:
nuxt.config.ts
export default defineNuxtConfig({
routeRules: {
'/': { prerender: true },
},
})
When running
nuxt build, the home page will be pre-rendered in .output/public/index.html and statically served.Notes
- A rule defined in
~/pages/foo/bar.vuewill be applied to/foo/barrequests. - A rule in
~/pages/foo/[id].vuewill be applied to/foo/*requests. - A rule in a page with a finite set of alternatives, such as a custom
pathof/:locale(en|fr)/about, will generate one rule per alternative (/en/aboutand/fr/about).
If a page path cannot be converted to an equivalent route rule pattern (for example, a param with a regular expression like /:id(\d+), a partial segment like /prefix-:id, or a repeatable param like /:slug+), the rules for that page are not applied and Nuxt warns during build. In that case, define the rules explicitly in nitro.routeRules in your nuxt.config.
For more control, such as if you are using a custom path or alias set in the page's definePageMeta, you should set routeRules directly within your nuxt.config.