# @nestjs/serve-static

> Nest - modern, fast, powerful node.js web framework (@serve-static)

Latest version **12.0.0** (published 2026-08-27) · MIT license · 0 weekly downloads

## Install

```sh
npm install @nestjs/serve-static
pnpm add @nestjs/serve-static
yarn add @nestjs/serve-static
bun add @nestjs/serve-static
```

## Health

**Score 65/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; recently updated; high maintenance score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 12.0.0 |
| Published | 2026-08-27 |
| First published | 2019-07-25 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | ^20.19.0 \|\| ^22.12.0 \|\| >=23.0.0 |
| Dependencies | 1 |
| Unpacked size | 66.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 515 |
| Author | Kamil Mysliwiec |
| Maintainers | nestjscore, kamilmysliwiec |

## Links

- npm: https://www.npmjs.com/package/@nestjs/serve-static
- Repository: https://github.com/nestjs/serve-static
- Homepage: https://github.com/nestjs/serve-static#readme
- Issues: https://github.com/nestjs/serve-static/issues
- npm.io page: https://npm.io/package/@nestjs/serve-static

## Dependencies (1)

- [path-to-regexp](https://npm.io/package/path-to-regexp.md) 8.4.2

## Recent versions

- 12.0.0 (latest) — 2026-08-27
- 2.0.0-next.2 (next) — 2020-02-23
- 5.0.5 — 2026-04-09
- 5.0.4 — 2025-10-10
- 5.0.3 — 2025-02-20
- 5.0.2 — 2025-02-06
- 5.0.1 — 2025-01-20
- 5.0.0 — 2025-01-20
- 4.0.2 — 2024-03-29
- 4.0.1 — 2024-02-07
- 4.0.0 — 2023-06-15
- 3.0.1 — 2023-02-09
- 3.0.0 — 2022-07-08
- 2.2.2 — 2021-07-07
- 2.1.4 — 2020-11-19
- … 8 more at https://npm.io/package/@nestjs/serve-static/versions

## README

<p align="center">
  <a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="120" alt="Nest Logo" /></a>
</p>

[travis-image]: https://api.travis-ci.org/nestjs/nest.svg?branch=master
[travis-url]: https://travis-ci.org/nestjs/nest
[linux-image]: https://img.shields.io/travis/nestjs/nest/master.svg?label=linux
[linux-url]: https://travis-ci.org/nestjs/nest

  <p align="center">A progressive <a href="http://nodejs.org" target="blank">Node.js</a> framework for building efficient and scalable server-side applications.</p>
    <p align="center">
<a href="https://www.npmjs.com/~nestjscore"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a>
<a href="https://www.npmjs.com/~nestjscore"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a>
<a href="https://www.npmjs.com/~nestjscore"><img src="https://img.shields.io/npm/dm/@nestjs/core.svg" alt="NPM Downloads" /></a>
<a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a>
<a href="https://opencollective.com/nest#backer"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a>
<a href="https://opencollective.com/nest#sponsor"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a>
  <a href="https://paypal.me/kamilmysliwiec"><img src="https://img.shields.io/badge/Donate-PayPal-dc3d53.svg"/></a>
  <a href="https://twitter.com/nestframework"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow"></a>
</p>
  <!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)
  [![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->

## Description

`@nestjs/serve-static` package for [Nest](https://github.com/nestjs/nest), useful to serve static content like Single Page Applications (SPA). However, if you are building MVC application or want to serve assets files (images, docs), use the `useStaticAssets()` method (read more [here](https://docs.nestjs.com/techniques/mvc)) instead.

## Installation

```bash
$ npm i --save @nestjs/serve-static
```

This package ships as ES modules only and requires Node.js `^20.19.0 || ^22.12.0 || >=23.0.0`.

CommonJS applications can still consume it through Node's `require(esm)` support. TypeScript projects that compile to CommonJS need `"module": "nodenext"` in their `tsconfig.json`; the older `"node16"` setting predates `require(esm)` and reports `TS1479`.

## Example

See full example [here](https://github.com/nestjs/nest/tree/master/sample/24-serve-static).

## Usage

Simply import `ServeStaticModule` in your Nest application.

```typescript
import { Module } from '@nestjs/common';
import { join } from 'path';
import { ServeStaticModule } from '@nestjs/serve-static';

@Module({
  imports: [
    ServeStaticModule.forRoot({
      rootPath: join(import.meta.dirname, '..', 'client')
    })
  ]
})
export class ApplicationModule {}
```

## API Spec

The `forRoot()` method takes an options object with a few useful properties.

| Property             | Type            | Description                                                                                                                                                                                          |
| -------------------- | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `rootPath`           | string          | Static files root directory. Default: `"client"`                                                                                                                                                     |
| `serveRoot`          | string          | Root path under which static app will be served. Default: `""`                                                                                                                                       |
| `renderPath`         | string / RegExp | Path to render static app (concatenated with the `serveRoot` value). Default: \* (wildcard - all paths). Note: `RegExp` is not supported by the `@nestjs/platform-fastify`.                          |
| `exclude`            | string[] / RegExp | Paths to exclude when serving the static app, given either as an array of path patterns or as a single `RegExp` matched against the request path. WARNING! Not supported by `fastify`. If you use `fastify`, you can exclude routes using regexp (set the `renderPath` to a regular expression) instead. |
| `serveStaticOptions` | Object          | Serve static options (static files)                                                                                                                                                                  |
| `useGlobalPrefix`    | boolean         | If `true`, static app will be prefixed by the global prefix set through `setGlobalPrefix()`. Default: `false` https://docs.nestjs.com/faq/global-prefix                                              |

## Support

Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).

## Stay in touch

- Author - [Kamil Myśliwiec](https://twitter.com/kammysliwiec)
- Website - [https://nestjs.com](https://nestjs.com/)
- Twitter - [@nestframework](https://twitter.com/nestframework)

## License

Nest is [MIT licensed](LICENSE).

---
_Source: https://npm.io/package/@nestjs/serve-static · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
