前言
Nest的目标是成为一个与平台无关的框架。平台独立性使创建可重用的逻辑部分成为可能,开发人员可以在几种不同类型的应用程序中利用这些逻辑部分。从技术上讲,一旦创建了适配器,Nest就能够与任何Node HTTP框架一起使用。有两个开箱即用的HTTP平台支持:express和fastify。
无论使用哪种平台,它都会公开自己的应用程序接口。
NestExpressApplication
NestFastifyApplication
当我们把这种类型传递时,我们的app对象上会具有专门针对该平台的方法。但是注意一点,除非实际想要访问底层平台 API,否则无需指定类型。
文件配置
在昨天我们讲到nest.js文件上传 一文带你弄懂nest.js文件上传,我们拿到其中一个文件的路径试一下,我们要用到的是文件的path
发现直接访问会报404错误
回到main.ts中配置一下,为nest指定我们要用的是Express,并且配置它的静态方法useStaticAssets()
它接受两个参数
path: 文件存放位置 options: 可选配置项 (用于匹配文件前缀) import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; import { NestExpressApplication } from '@nestjs/platform-express'; async function bootstrap() { const app = await NestFactory.create<NestExpressApplication>(AppModule); app.useStaticAssets('uploads', { prefix: '/uploads' }) await app.listen(3000); } bootstrap();
可以看到options里面配置项还是比较多的 ,只挑几种解释一下
dotfile: 点阵文件是各种程序的配置文件,它们帮助这些程序管理其功能。例如.config .bash等
etag:etag是URL的tag,用来标示URL对象是否改变,可用于缓存
maxAge: Cache-Control header的指令,会告诉客户端 index.html 将被视为 100000 毫秒的“新鲜”,因此在 maxAge 之前没有必要再次向服务器询问该文件过去。 客户端在此期间保留此文件,它与服务器缓存无关。
extensions: 文件拓展名
redirect: 重定向,当我们访问一个url时,如果重定向可以帮我们跳转到对应的url地址
prefix: 路由前缀
当我们配置好之后,再次访问已经可以了
总结
访问静态资源的方法还是简单的,要注意的就是path要和存放的文件位置要一样。