nuxt3 routeRules 混合渲染

混合渲染允许每个路由使用不同的缓存规则路由规则并决定服务器应如何响应给定 URL 上的新请求。

以前,Nuxt应用程序和服务器的每个路由/页面都必须使用相同的渲染模式,通用或客户端。在各种情况下,某些页面可以在构建时生成,而其他页面则应在客户端呈现。例如,考虑一个带有管理部分的内容网站。每个内容页面都应该主要是静态的,并生成一次,但管理部分需要注册,并且行为更像是动态应用程序。

export default defineNuxtConfig({
  routeRules: {
    // Homepage pre-rendered at build time
    '/': { prerender: true },
    // Product page generated on-demand, revalidates in background
    '/products/**': { swr: 3600 },
    // Blog post generated on-demand once until next deploy
    '/blog/**': { isr: true },
    // Admin dashboard renders only on client-side
    '/admin/**': { ssr: false },
    // Add cors headers on API routes
    '/api/**': { cors: true },
    // Redirects legacy urls
    '/old-page': { redirect: '/new-page' }
  }
})

路由规则

  • redirect: string - 定义服务器端重定向。
  • ssr: boolean - 禁用应用各部分的服务器端渲染,并使其仅使用 SPAssr: false
  • cors: boolean - 自动添加 cors 标头 - 您可以通过覆盖cors: trueheaders
  • headers: object - 将特定标题添加到网站的各个部分 - 例如,您的资产
  • swr: number|boolean - 将缓存标头添加到服务器响应中,并将其缓存在服务器或反向代理上,以实现可配置的 TTL(生存时间)。Nitro 的预设能够缓存完整的响应。当 TTL 过期时,将发送缓存的响应,同时在后台重新生成页面。如果使用 true,则添加一个不带 MaxAge 的标头。node-serverstale-while-revalidate
  • isr: number|boolean - 行为与此行为相同,只是我们能够在支持此功能的平台(当前为 Netlify 或 Vercel)上将响应添加到 CDN 缓存中。如果使用,则内容将一直保留,直到下一次在 CDN 中部署。swrtrue
  • prerender:boolean - 在构建时预渲染路由,并将它们作为静态资产包含在构建中
  • experimentalNoScripts: boolean - 禁用 Nuxt 脚本和站点部分的 JS 资源提示的呈现。

只要有可能,路由规则将自动应用于部署平台的原生规则,以获得最佳性能(目前支持 Netlify 和 Vercel)

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值