文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
路由 Routing
Nitro 支持文件系统路由以及定义路由规则以获得最大的灵活性和性能。
基于文件的路由
Nitro 支持 API 路由的基于文件的路由。
api/
和 routes/
目录中的处理程序文件将自动映射到 unjs/h3 路由。
由于像 Vercel 这样的提供商使用顶级 api/
目录作为一项功能,Nitro 也支持 routes/api/
来创建 API 路由。
api/
test.ts <-- /api/test
routes/
hello.ts <-- /hello
nitro.config.ts
如果您使用的是 Nuxt,请将 api/
和 routes/
移到 server/
目录中。
Simple route
Nitro 允许您在配置的顶层添加逻辑,这对于重定向、代理、缓存和向路由添加标头很有用。
它是从路由模式(遵循 unjs/radix3)到路由选项的映射。
当设置了 cache 选项时,匹配模式的处理程序将自动用 defineCachedEventHandler 包装。
查看 Cache API 了解所有可用的缓存选项。
swr: true|number
is shortcut for cache: { swr: true, maxAge: number }
Example:
nitro.config.tsimport { defineNitroConfig } from 'nitropack/config'
export default defineNitroConfig({
routeRules: {
'/blog/**': { swr: true },
'/blog/**': { swr: 600 },
'/blog/**': { static: true },
'/blog/**': { cache: { /* cache options*/ } },
'/assets/**': { headers: { 'cache-control': 's-maxage=0' } },
'/api/v1/**': { cors: true, headers: { 'access-control-allow-methods': 'GET' } },
'/old-page': { redirect: '/new-page' },
'/proxy/example': { proxy: 'https://example.com' },
'/proxy/**': { proxy: '/api/**' },
}
})
nuxt.config.tsexport default defineNuxtConfig({
routeRules: {
'/blog/**': { swr: true },
'/blog/**': { swr: 600 },
'/blog/**': { static: true },
'/blog/**': { cache: { /* cache options*/ } },
'/assets/**': { headers: { 'cache-control': 's-maxage=0' } },
'/api/v1/**': { cors: true, headers: { 'access-control-allow-methods': 'GET' } },
'/old-page': { redirect: '/new-page' },
'/proxy/example': { proxy: 'https://example.com' },
'/proxy/**': { proxy: '/api/**' },
}
})
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论