NestJS中配置静态资源

Nestjs中默认的静态web目录为statics目录,可以存放图片、CSS、JavaScript文件,如果您想自定义静态web目录的话通过app.useStaticAssets('public');来配置

官方文档:https://docs.nestjs.com/techniques/mvc

NestJS中配置静态资源目录完整代码:
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { NestExpressApplication } from '@nestjs/platform-express';
async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  app.useStaticAssets('public'); 
  await app.listen(3000);
}
bootstrap();
			

在根目录新建public目录,然后在目录里面保存一个图片比如1.jpg,这样就可以通过http://localhost:3000/1.jpg 来访问图片。

我们也可以配置虚拟目录,比如我们想通过 http://localhost:3000/static/1.jpg 来访问public目录里面的文件,这时候代码如下:

app.useStaticAssets(join(__dirname, '..', 'public'),{
    prefix: '/static/',   //设置虚拟路径
 });	
			

完整代码:

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);
  // app.useStaticAssets('public'); 
  app.useStaticAssets(join(__dirname, '..', 'public'),{
    prefix: '/static/',   //设置虚拟路径
 }); 
  await app.listen(3000);
}
bootstrap();	
			

这个时候我们就可以使用 http://localhost:3000/static/1.jpg 来访问public目录里面的文件