首页 > 编程语言 >java springboot 项目中静态资源无法访问的问题

java springboot 项目中静态资源无法访问的问题

时间:2023-05-31 11:47:54浏览次数:76  
标签:java springboot 无法访问 classpath registry public resources addResourceLocations

默认 resource/static 目录下的静态html文件无法访问,需要配置。

您可以在 Spring Boot 的配置类中添加以下内容来手动配置静态资源目录:

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**")
                .addResourceLocations("classpath:/static/");
    }
}

配置后确实可以访问了,但 swagger-ui.html 无法访问了

这种情况通常是因为你的 addResourceHandlers 方法覆盖了 Spring Boot 的默认设置,导致 Swagger UI 页面无法访问。默认情况下,Spring Boot 会自动将 classpath:/META-INF/resources/ 目录下的静态资源文件映射到 /webjars/**/swagger-ui.html 路径下。

所以,如果您需要自定义一些资源文件的映射路径,可以在 addResourceHandlers 方法中添加额外的资源路径,并将默认的配置也包含在内,如下所示:

Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");

        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
        
        registry.addResourceHandler("/**")
                .addResourceLocations("classpath:/static/")
                .addResourceLocations("classpath:/public/")
                .addResourceLocations("classpath:/resources/")
                .addResourceLocations("classpath:/META-INF/resources/");
    }
}

 

标签:java,springboot,无法访问,classpath,registry,public,resources,addResourceLocations
From: https://www.cnblogs.com/nanfei/p/17445642.html

相关文章

  • java简单实现布隆过滤器
    为了方便理解布隆过滤器,java简单实现了下,特点:仅用做一次运算就可以判断存在不存在,但是只能精确的判断值不存在,不能精确的判断值存在publicclassBlTest{privatefinalintf=1024;//负载因子,值越大判断的越精准,但是所占的空间也越大int[]bArray;BlTest(){......
  • Java大文件分片上传/多线程上传解决方案
    ​ javaweb上传文件上传文件的jsp中的部分上传文件同样可以使用form表单向后端发请求,也可以使用ajax向后端发请求    1.通过form表单向后端发送请求         <formid="postForm"action="${pageContext.request.contextPath}/UploadServlet"method="post"e......
  • java面试题
    一、面向对象的特性有哪些?封装(Encapsulation):将数据和方法封装在一个类中,通过访问修饰符控制数据的访问权限,提高程序的安全性和可维护性。继承(Inheritance):可以从父类继承属性和方法,避免重复编写代码,简化程序设计和维护。多态(Polymorphism):同一种类型的对象,可以以不同的方式......
  • java轻型内存队列处理demo
    java轻型内存队列处理demo@ComponentpublicclassConcurrentLinkedQueueUtils{staticAtpLogBizatpLogBiz;staticAuditLogtTmpDataServiceauditLogDataService;staticConcurrentLinkedQueueconList=newConcurrentLinkedQueue();privatestaticvo......
  • SpringBoot定义优雅全局统一Restful API 响应框架五
    闲话不多说,继续优化全局统一RestfulAPI响应框架做到项目通用接口可扩展。如果没有看前面几篇文章请先看前面几篇SpringBoot定义优雅全局统一RestfulAPI响应框架SpringBoot定义优雅全局统一RestfulAPI响应框架二SpringBoot定义优雅全局统一RestfulAPI响应框架三Sp......
  • java中属性和局部变量的作用域
    1.类中的属性和局部变量可以重名,访问时遵循就近原则2.在同一个作用域中({}大括号括起来的),如在一个成员方法中,两个局部变量不能重名3.属性的生命周期长,随着对象的创建而创建,随着对象的销毁而销毁;局部变量的生命周期短,随着它所属的代码块执行而创建,随着代码快的结束而销毁。......
  • java同步mysql的数据到PostgreSQL时报错ERROR: invalid byte sequence for encoding "
    最近,同事在做一个功能,通过java程序将mysql中的一张表的数据同步到pgsql中,在同步过程中,插入到pgsql中出现了如下错误:`###Errorupdatingdatabase.Cause:org.postgresql.util.PSQLException:ERROR:invalidbytesequenceforencoding"UTF8":0x00在位置:unnamedportalpa......
  • 阿里云验证码短信功能---SpringBoot项目
    阿里云官网:https://www.aliyun.com/activity/2023caigouji/shangyuncaigouji?utm_content=se_1013408957准备工作注册阿里云账号申请AccessKeyID和AccessKeySecret搜索“短信服务SMS”,选择“免费开通”即可选择国内消息,申请签名管理和模板管理准备完成后我们可以获取Access......
  • java modbus_rtu串口通讯
    基于modbus和串口通讯的Java分享本文推荐一个简单好用java实现基于modbus—rtu协议通讯方法:如果采用非标准modbus协议通讯,可以查看我的这篇博文:java实现串口通讯关于modbus的java开源库主要有以下四种:Jamod:JavaModbus实现:JavaModbus库。该库由DieterWimberger实施。Mod......
  • Java 删除某个目录下面所有的文件
    Java删除某个目录下面所有的文件 FilecodeDir=newFile("C:\\111111");deleteContents(codeDir);//删除111111目录下面所有内容,但不删除111111这个目录deleteContentsAndDir(codeDir);//删除111111目录下面所有内容,最后将111111这个......