SpringBoot访问web中的静态资源的方式小结

 更新时间:2024年10月10日 11:14:36   作者:Charge8  
这篇文章主要介绍了SpringBoot访问web中的静态资源的方式,本文给大家介绍了两种方式,通过代码示例和图文讲解的非常详细,具有一定的参考价值,需要的朋友可以参考下

总体来讲 SpringBoot 访问web中的静态资源,有两个方式:

1、classpath 类目录 (src/mian/resource)

classpath 即 WEB-INF 下面的 classes 目录 ,在 SpringBoot  项目中是 src/main/resource 目录。

2、ServletContext 根目录下( src/main/webapp )

一、SpringBoot 访问web中的静态资源

SpringBoot默认指定了一些固定的目录结构,静态资源放到这些目录中的某一个,系统运行后浏览器就可以访问到。

1、SpringBoot 默认指定的可以存放静态资源的目录有哪些?

  • classpath:/META-INF/resources/      ## 需创建/META-INF/resources/ 目录
  • classpath:/resources/                        ## 需创建/resources/目录
  • classpath:/static/                               ## 工具自动生成的static目录,也是用的最多的目录
  • classpath:/public/                              ## 需创建/public/ 目录
  • /                                     ## 指的是 src/main/webapp/ 需创建/webapp/ 目录

查看源码可以找到静态资源拦截的自动化的配置信息:在 WebMvcAutoConfiguration 类中的 addResourceHandlers方法。

2、在全局配置文件中自定义--修改这些默认的目录

注意: 修改后,除配置的目录以外其他目录就不可以再访问静态资源了(SpringBoot 2.1.4 试了好像可以)

方式一:配置文件修改

YAML 文件:

server:
  port: 80
spring:
  resources:
    static-locations:
      - classpath:resources
      - classpath:static
  mvc:
    static-path-pattern: /**

properties 文件 

server.port=80
spring.resources.static-locations=classpath:resources,classpath:static
spring.mvc.static-path-pattern=/**

第一行配置表示定义资源位置,第二行配置表示定义请求 URL 规则。

方式二:配置类修改

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

访问的时候就需要写完整路径 http://127.0.0.1:8080/static/abc23.jpg。

3、SpringBoot 默认的首页是放在任一个静态资源目录下的index.html   

4、SpringBoot 默认的web页面图标是放在任一静态资源目录下的favicon.ico

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h4>SpringBoot访问web中的静态资源</h4>
    <img src="abc23.jpg" width="300px" height="250px">
</body>
<script src="jquery-1.12.4.js"></script>
<script type="text/javascript">
    $(function () {
        alert("hello 首页!");
    })
</script>
</html>

将静态资源放在上面指定的目录中,即可访问 index.html

二、把静态资源打成jar包引入系统后供访问

常用的静态资源jar包的maven依赖网站:http://www.webjars.org

把依赖配置到maven的pom.xml中,就可以在网站根目录/webjars/jquery/1.12.4/jquery.js访问到资源!

index.html 正常引用 js,也正常访问到。

以上就是SpringBoot访问web中的静态资源的方式小结的详细内容,更多关于SpringBoot访问web静态资源的资料请关注脚本之家其它相关文章!

相关文章

  • java设计模式--原型模式详解

    java设计模式--原型模式详解

    这篇文章主要为大家详细介绍了Java设计模式之Prototype原型模式的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • 浅谈关于Java的GC垃圾回收器的一些基本概念

    浅谈关于Java的GC垃圾回收器的一些基本概念

    这篇文章主要介绍了关于Java的GC垃圾回收器的一些基本概念,牵扯倒JVM内存模型的一些知识,需要的朋友可以参考下
    2015-11-11
  • Java中Scanner的用法示例小结

    Java中Scanner的用法示例小结

    有时候我们在编写代码的时候可能会使用输入和输出,那Java也有自己的输入和输出,今天我们来探究一下,对Java Scanner用法相关知识感兴趣的朋友一起看看吧
    2025-04-04
  • 解决@Autowired注入空指针问题(利用Bean的生命周期)

    解决@Autowired注入空指针问题(利用Bean的生命周期)

    这篇文章主要介绍了解决@Autowired注入空指针问题(利用Bean的生命周期),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Spring使用@Async出现循环依赖原因及解决方案分析

    Spring使用@Async出现循环依赖原因及解决方案分析

    在Spring框架中,启用异步功能需要在应用主类上添加@EnableAsync注解,当项目中存在循环引用时,如一个异步类MessageService和一个常规类TaskService相互引用,并且这两个类位于同一包内,这种情况下可能会触发Spring的循环依赖异常
    2024-10-10
  • SpringSecurity集成图片验证码的详细过程

    SpringSecurity集成图片验证码的详细过程

    SpringSecurity是通过过滤器链来完成的,接下来的验证码,可以尝试创建一个过滤器放到Security的过滤器链中,在自定义的过滤器中比较验证码,本文通过实例代码介绍SpringSecurity集成图片验证码的详细过程,感兴趣的朋友一起看看吧
    2023-12-12
  • java几种排序算法的实现及简单分析

    java几种排序算法的实现及简单分析

    这篇文章主要介绍了java几种排序算法的实现及简单分析,实例分析了插入排序、希尔排序、选择排序等常用排序算法,并分析了各个算法的优劣,需要的朋友可以参考下
    2015-05-05
  • SpringBoot项目集成日志的实现方法

    SpringBoot项目集成日志的实现方法

    这篇文章主要介绍了SpringBoot项目集成日志的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • Spring中Eureka的自我保护详解

    Spring中Eureka的自我保护详解

    这篇文章主要介绍了Spring中Eureka的自我保护详解,当Eureka Server节点在短时间内丢失过多客户端时(可能发生了网络分区故障),那么这个节点就会进入自我保护模式,一旦进入该模式,Eureka Server就会保护服务注册表中的信息,需要的朋友可以参考下
    2023-11-11
  • Java进阶教程之异常处理

    Java进阶教程之异常处理

    这篇文章主要介绍了Java进阶教程之异常处理,本文讲解了JAVA的异常处理机制、异常的类型、抛出异常、自定义异常等内容,需要的朋友可以参考下
    2014-09-09

最新评论