springboot项目如何配置静态目录

springboot项目如何配置静态目录 前端上传东西之后 后端返回相应的路径进行访问


@Configuration
public class ApplicationConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");
        //访问  /static/下的即为 /statice/下的目录
        registry.addResourceHandler("/static/**")
                .addResourceLocations("classpath:/static/");
        //访问  /pic/下的路径即为 /upload/Pic/下的路径
        registry.addResourceHandler("/pic/**")
                .addResourceLocations("classpath:/uploadPic/");
    }
}

在Spring Boot中配置静态目录很简单,只需要在application.yml或application.properties文件中添加如下配置即可:

spring:
  resources:
    static-locations: classpath:/static/

这里以classpath:/static/目录作为静态文件目录,你可以根据实际情况进行调整,指定多个目录也可以使用逗号分隔。

在上传文件后返回相应的路径进行访问,可以使用org.springframework.web.multipart.MultipartFile类来处理上传的文件,你需要在Controller中使用@RequestMapping注解指定上传文件的路径和方法,例如:

@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) {
    // 处理上传后的文件,可以使用FileOutputStream等类来进行存储
    String fileName = file.getOriginalFilename();
    // ...
    // 返回相应的文件路径
    return "/upload/" + fileName;
}

在上传完成后,这个方法可以返回上传文件的相对路径或者完整路径,前端可以使用这个路径访问上传的文件。如果你在配置静态目录时指定了classpath:/static/,那么上传文件的相对路径应该是/upload/文件名,例如/upload/test.jpg,前端可以使用标签或其他方式来访问该文件。

需要注意的是,这里返回的路径应该是相对于静态目录的路径,否则在访问该文件时可能出现404错误。