本文介绍: 之前发过通过继承WebMvcConfigurationSupport来访问静态资源的文章——,代码如下这个方法是可行的,但会带来一个小问题。
之前发过通过继承WebMvcConfigurationSupport来访问静态资源的文章——img标签访问静态资源,代码如下
@Configuration
public class LocalPathWebMvcConfigurer extends WebMvcConfigurationSupport {
/**
* 在springboot项目中,允许浏览器访问指定本地文件
*
* @param registry
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/img/**").addResourceLocations("file:///D:/exerciting/java/mall-picture/");
super.addResourceHandlers(registry);
}
}
这个方法是可行的,但会带来一个小问题。
问题:在项目中加入swagger-ui这种本身就带静态资源的依赖,它该怎么访问?
像这些本身就要访问静态资源的,它们一般是实现了WebMvcConfigurer,而不是继承WebMvcConfigurationSupport。
当我们用上面代码中的方法访问静态资源后,会发现你不能继续访问swagger-ui.html了,所以改进的做法是将自己要访问的静态资源也用实现WebMvcConfigurer中addResourceHandlers方法的方式重写,代码如下:
@Configuration
public class BaaJoyMallWebMvcConfigurer implements WebMvcConfigurer {
@Autowired
private TokenToMallUserMethodArgumentResolver tokenToMallUserMethodArgumentResolver;
/**
* 在springboot项目中,允许浏览器访问指定本地文件,最好用实现WebMvcConfigurer的方法而不是继承WebMvcConfigurationSupport的方法重写
* 因为如果像swagger-ui这种自带静态资源的,可能会因此访问不到
*
* @param registry
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/goods-img/**")
.addResourceLocations("file:///D:/exerciting/java/baajoy-mall-springboot/src/main/resources/goods-img/");
registry.addResourceHandler("/upload/**")
.addResourceLocations("file:///D:/exerciting/java/baajoy-mall-springboot/src/main/resources/upload/");
}
}
当然两种方法都是可以的,至于有没有其他方法,还没有太多了解。
原文地址:https://blog.csdn.net/qq_64164071/article/details/135553822
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_55924.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。