主题
nest 开启静态服务器
目的:为了提供像单页应用程序(SPA)这样的静态内容
方式 1:@nestjs/serve-static
(1)安装依赖包
bash
npm install --save @nestjs/serve-static
(2)配置
安装过程完成后,我们可以将其导入 ServeStaticModule 根目录 AppModule 并通过将配置对象传递给 forRoot()方法对其进行配置。
ts
// app.Module.ts
import { Module } from "@nestjs/common";
import { AppController } from "./app.controller";
import { AppService } from "./app.service";
import { PersonModule } from "./person/person.module";
import { ServeStaticModule } from "@nestjs/serve-static";
import { join } from "path";
@Module({
imports: [
PersonModule,
ServeStaticModule.forRoot({
// 托管public目录, 访问地址 /public
rootPath: join(__dirname, "..", "public"),
}),
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
最后访问 http://localhost:3000/public
, 就能访问到 /public里面的 index.html文件内容了
方式2:app.useStaticAssets
ts
// main.ts
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { NestExpressApplication } from '@nestjs/platform-express';
import { join } from 'path';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
const app = await NestFactory.create<NestExpressApplication>(AppModule);
// 托管public目录, 访问地址 /static
app.useStaticAssets(join(__dirname, '..', 'public'), { prefix: '/static'});
await app.listen(3000);
}
bootstrap();
提示
注意要给create
方法传入NestExpressApplication
的泛型参数才有useStaticAssets
这些方法