静态内容 Serve Static

导读

为了提供像单页应用程序 (SPA) 这样的静态内容,我们可以使用 @nestjs/serve-static 包中的 ServeStaticModule

安装

首先,我们需要安装所需的包:

bash
$ npm install --save @nestjs/serve-static

Bootstrap

安装过程完成后,我们可以将 ServeStaticModule 导入根 AppModule,并通过将配置对象传递给 forRoot() 方法来对其进行配置。

ts
import { join } from 'node:path'
import { Module } from '@nestjs/common'
import { ServeStaticModule } from '@nestjs/serve-static'
import { AppController } from './app.controller'
import { AppService } from './app.service'

@Module({
  imports: [
    ServeStaticModule.forRoot({
      rootPath: join(__dirname, '..', 'client'),
    }),
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

完成这些后,构建静态网站并将其内容放置在 rootPath 属性指定的位置。

配置

ServeStaticModule 可以配置各种选项来自定义其行为。 您可以设置渲染静态应用程序的路径、指定排除的路径、启用或禁用设置 Cache-Control 响应标头等。请参阅 此处 的完整选项列表。

通知

静态应用程序的默认 renderPath*(所有路径),模块将发送index.html文件作为响应。

它允许您为 SPA 创建客户端路由。控制器中指定的路径将回退到服务器。

您可以通过设置 serveRootrenderPath 并将其与其他选项组合来更改此行为。

示例

此处 提供了一个有效示例。