栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java > SpringBoot

记录一个spring boot 静态资源访问问题

SpringBoot 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

记录一个spring boot 静态资源访问问题

spring boot 只要把静态资源放在static目录下,理论是可以直接访问的。

但是,今天却发现了一个很是头疼的问题,静态资源放入static文件夹了,但通过浏览器却是访问不到。

网上搜索了一大堆,都是一份文章你抄来,他抄去,一点价值都没有。

于是回到控制台,仔细查看spring boot 启动时输出的日志信息:


发现spring boot并没有对这个URL做映射,这应该是我做了什么自定义配置导致的spring boot 默认的自动配置被替换掉了。

于是把问题定位到了一个继承了WebMvcConfigurationSupport的java配置上:

public class WebConfig extends WebMvcConfigurationSupport {

 
   @Override
   public void addInterceptors(InterceptorRegistry registry) {
       registry.addInterceptor(new HttpInterceptor());
   }


}

有可能是这段代码导致的URL映射没自动进行。关掉这个配置,果然能从浏览器访问到静态资源了。

于是寻找这个配置添加资源映射的方法,找到了一个addResourceHandlers方法。

重载这个方法,搜索ResourceHandlerRegistry的用法:

private static final String[] RESOURCE_LOCATIONS =
           { "classpath:/meta-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/" };
   @Override
   protected void addResourceHandlers(ResourceHandlerRegistry registry) {
       try {

           File directiory = new File("");
           registry.addResourceHandler("/**").addResourceLocations(RESOURCE_LOCATIONS).addResourceLocations("file:" + directiory.getCanonicalPath() + "/");

       } catch (Exception e) {

       }

}

添加之后,静态资源正常访问。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/235124.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号