NestJs配置静态图片服务失败:无法访问指定文件夹图片
问题原因
- 路径解析错误:编译后
__dirname指向dist/src目录,你当前配置里的join(__dirname, '..', '/uploads')会解析到dist/uploads,但实际uploads文件夹在项目根目录,并非dist目录下,导致Nest找不到对应文件。 - 错误日志里的
dist/uploads/index.html也印证了这一点——Nest在错误的路径下寻找静态资源,自然找不到test.jpg。
解决方案
直接修改ServeStaticModule的rootPath配置,用process.cwd()获取项目根目录,再拼接uploads文件夹:
@Module({ imports: [ ConfigModule.forRoot({ isGlobal: true }), AuthenticationModule, PrismaModule, UserModule, ServeStaticModule.forRoot({ rootPath: join(process.cwd(), 'uploads'), // 改为项目根目录下的uploads serveRoot: '/uploads', }), ], controllers: [AppController], providers: [AppService], }) export class AppModule {}
修改后重启服务,访问http://localhost:3000/uploads/test.jpg即可正常打开图片。
额外说明:用process.cwd()直接读取根目录的uploads文件夹,无需手动将uploads复制到dist目录,更省心。
内容的提问来源于stack exchange,提问作者Asking
相关产品推荐
相关产品推荐

