springboot项目实现静态文件映射任意路径

本文介绍了一种在项目中配置本地图片路径的方法,通过自定义WebConfigurer类来实现通过URL直接访问位于本地磁盘上的图片资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这样实现的效果是比如我们图片是在电脑中d盘下。我想用localhost:8080/files/img.jpg访问那个图片。
首先在项目中添加如下java文件

@Component  
class WebConfigurer extends WebMvcConfigurerAdapter {
    @Override  
    public void addResourceHandlers(ResourceHandlerRegistry registry) {  
        //配置server虚拟路径,handler为jsp中访问的目录,locations为files相对应的本地路径     registry.addResourceHandler("/files/**").addResourceLocations("本地磁盘路径如:file:///D:/filesdir/");  
    }  

} 

这样当我们在页面中使用<img src="${ctx}/files/img.jpg"/>的时候就能看到图片了(${ctx}相当于localhost:8080)

Spring Boot 可以通过Web模块轻松地提供静态资源,包括从磁上的静态文件夹。当你有一个名为`static`的文件夹在你的项目资源目录下,例如`src/main/resources/static`,你可以让Spring Boot自动暴露这个目录供浏览器访问。 要在Spring Boot应用中配置静态资源映射,你需要在`application.properties`或`application.yml`文件中添加类似这样的配置: ```properties spring.mvc.static-path-pattern=/static/** ``` 这里的`**`是一个通配符,表示匹配路径中的所有内容。这意味着任何以`/static/`开头的URL都将由Spring Boot处理,并尝试从`static`文件夹中找到相应的文件返回给客户端。 如果你想要在启动时扫描特定的目录,而不是默认的`static`目录,可以创建一个`Resource`对象并将其作为`@Controller`的属性: ```java import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.resource.ResourceUrlProvider; @Controller @RequestMapping("/custom") public class CustomStaticController { private final ResourceUrlProvider resourceUrlProvider; public CustomStaticController(ResourceUrlProvider resourceUrlProvider) { this.resourceUrlProvider = resourceUrlProvider; } @GetMapping("/{path:.+}") public Resource handleRequest(@PathVariable String path) throws IOException { return resourceUrlProvider.getResource("classpath:/custom/" + path); } } ``` 在这个例子中,`/custom`是你自定义的路径前缀,而`{path:.+}`会匹配到任意路径,然后将请求转发给Spring MVC处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值