跳到主要内容

prerenderRoutes

prerenderRoutes 向 Nitro 暗示预渲染一个额外的路由。

在预渲染时,你可以向 Nitro 暗示预渲染额外的路径,即使这些 URL 并没有出现在所生成页面的 HTML 中。

prerenderRoutes 只能在 Nuxt 上下文 中调用。 :

prerenderRoutes 必须在预渲染期间执行。如果 prerenderRoutes 被用于未被预渲染的动态页面/路由,那么它不会被执行。 :

const route = useRoute()

prerenderRoutes('/')
prerenderRoutes(['/', '/about'])

在浏览器中,或者在预渲染之外被调用时,prerenderRoutes 没有任何效果。 :

你甚至可以预渲染 API 路由,这对于完全静态生成的站点(SSG)特别有用,因为这样你就可以 $fetch 数据,就好像你有一个可用的服务器一样!

prerenderRoutes('/api/content/article/name-of-article')

// 稍后应用中的某处
const articleContent = await $fetch('/api/content/article/name-of-article', {
  responseType: 'json',
})

生产环境中预渲染的 API 路由可能不会返回预期的响应头,这取决于你所部署的平台。例如,一个 JSON 响应可能会被以 application/octet-stream 的 content type 提供。 在 fetch 预渲染的 API 路由时,始终手动设置 responseType。 :