资源
配置公共资源和服务器资源的提供与打包方式。
Note
本页所有示例都假设已在 nitro.config.ts 中导入以下内容:
import { defineConfig } from "nitro";#serveStatic
- 类型:
boolean|'node'|'inline' - 默认值:取决于所用的部署预设。
在生产环境中提供 public/ 资源。
注意: 强烈建议改由边缘 CDN(Nginx、Apache、Cloud)提供 .output/public/ 目录,以启用压缩和更高级别的缓存。
export default defineConfig({
serveStatic: "node", // serve static assets using Node.js
});#noPublicDir
- 默认值:
false
启用后不会创建 .output/public 目录,也会跳过 public/ 目录复制并禁用预渲染。
export default defineConfig({
noPublicDir: true, // skip public directory output
});#publicAssets
开发模式下提供、生产环境下打包的公共资源目录。
检测到 public/ 目录时会默认将其添加到列表中,你也可以自行添加其他目录。
可以使用 maxAge 选项为资源设置 Cache-Control 响应头:
export default defineConfig({
publicAssets: [
{
baseURL: "images",
dir: "public/images",
maxAge: 60 * 60 * 24 * 7, // 7 days
},
],
});上述配置会为 public/images/ 目录下的资源生成以下响应头:
cache-control: public, max-age=604800, immutable
dir 选项指定文件在文件系统中的位置;baseURL 选项指定这些文件在提供或打包后可访问的目录。
Read more in Docs > Assets.
#compressPublicAssets
- 类型:
boolean|{ gzip?: boolean, brotli?: boolean, zstd?: boolean } - 默认值:
false
启用后,Nitro 会将公共目录中受支持类型且大于 1024 字节的资源和预渲染路由预先压缩为 gzip、brotli 和/或 zstd 格式。压缩级别使用默认值。借助此选项,无需 CDN 也能以零运行时开销提供压缩资源。
在开发模式下,受支持类型的公共资源会按启用的 gzip 和/或 brotli 编码即时压缩。
export default defineConfig({
compressPublicAssets: {
gzip: true,
brotli: true, // enable gzip and brotli pre-compression
},
});#serverAssets
可在服务器逻辑中访问并在生产环境构建时打包的资源。
export default defineConfig({
serverAssets: [
{
baseName: "templates",
dir: "./templates", // bundle templates/ as server assets
},
],
}); Read more in Docs > Assets#server Assets.