SpringBoot深入探究四种静态资源访问的方式

作者:zh_Tnis 时间:2021-11-30 02:42:46 

1.默认的静态资源目录

/static

/public

/resources

/META-INF/resources

动态资源目录:/templates

2.resources静态资源目录图片存放

SpringBoot深入探究四种静态资源访问的方式

3. 静态资源访问

3.1.通过路径访问静态资源

http://localhost:8080/a.jpg

http://localhost:8080/b.jpg

http://localhost:8080/c.png

http://localhost:8080/d.jpg

3.2.通过配置类配置路径访问本地静态资源

1.config

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
   @Override
   public void addResourceHandlers(ResourceHandlerRegistry registry) {
       //自定义路径mypic,  addResourceLocations指定访问资源所在目录
       registry.addResourceHandler("/mypic/**").addResourceLocations("file:C:\\Users\\Administrator\\Desktop\\images1\\");
       //自定义路径webjars访问,addResourceLocations映射该路径下的资源,resourceChain资源链
//        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/").resourceChain(true);
   }
}

2.访问结果展示

路径:http://localhost:8080/mypic/huangshanpic.webp

SpringBoot深入探究四种静态资源访问的方式

3.3.通过配置文件配置路径访问静态资源

(1).application.yml

web.pic-path=C:/Users/Administrator/Desktop/images1/
spring.mvc.static-path-pattern=/mypic/**
spring.web.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/public/,classpath:/static/,file:${web.pic-path}

web.pic-path:访问路径

spring.mvc.static-path-pattern:采用全部映射到mypic路径的方式

spring.web.resources.static-locations:配置允许访问的静态资源目录

(2).访问路径格式

http://localhost:8080/mypic/a.jpg

http://localhost:8080/mypic/b.jpg

http://localhost:8080/mypic/c.png

http://localhost:8080/mypic/d.jpg

http://localhost:8080/mypic/web.pic-path配置本地路径下的图片名称

3.4.通过引入打包静态资源的jar包形式访问

(1).静态资源打jar包

创建一个新的web工程,只存放静态资源

1).pom.xml

<artifactId>WWebjarsdemo</artifactId>
   <version>1.0</version>
   <build>
       <resources>
           <resource>
               <!--
               directory   将该路径下的资源(example/0.0.3/资源)打包
               targetPath  成该路径下存储
               -->
               <directory>${project.basedir}/src/main/resources</directory>
               <targetPath>${project.build.outputDirectory}/META-INF/resources/webjars</targetPath>
           </resource>
       </resources>
   </build>

2).静态资源目录结构

SpringBoot深入探究四种静态资源访问的方式

3).package点击打包

SpringBoot深入探究四种静态资源访问的方式

4).install到本地仓库

SpringBoot深入探究四种静态资源访问的方式

(2).主项目中引入依赖包

1).pom.xml

<!--导入依赖的自定义静态资源webjars包-->
       <dependency>
           <groupId>com.openlab</groupId>
           <artifactId>WWebjarsdemo</artifactId>
           <version>1.0</version>
       </dependency>
       <!--为了不再管理版本号-->
       <dependency>
           <groupId>org.webjars</groupId>
           <artifactId>webjars-locator-core</artifactId>
           <version>0.35</version>
       </dependency>

(3).路径访问

未引入webjars-locator-core的jar包:http://localhost:8080/webjars/example/版本号/huangshan.webp

引入webjars-locator-core的jar包:

http://localhost:8080/webjars/example/huangshan.webp

注意:如果主程序和引入打包的jar包静态资源下具备相同的目录结构,如:META-INF\resources\webjars\example\0.0.1\**,可能会出现路径访问失败的情况。

解决方法:clean主程序项目,重新运行。

(4).访问结果

SpringBoot深入探究四种静态资源访问的方式

来源:https://blog.csdn.net/zh_tnis/article/details/124897683

标签:SpringBoot,静态资源访问
0
投稿

猜你喜欢

  • Java算法之时间复杂度和空间复杂度的概念和计算

    2023-06-11 17:47:56
  • 详解Java泛型及其应用

    2023-09-21 22:38:32
  • C#多线程及同步示例简析

    2022-02-25 22:12:43
  • Spring Boot启动端口修改方法

    2022-11-21 19:37:53
  • SpringBoot Test类注入失败的解决

    2023-05-20 13:59:40
  • 详解SpringBoot通用配置文件(不定时更新)

    2022-12-01 09:07:04
  • Android Studio finish()方法的使用与解决app点击“返回”(直接退出)

    2022-07-31 09:37:10
  • java利用数组随机抽取幸运观众

    2023-11-11 11:14:33
  • C#最简单的关闭子窗体更新父窗体的实现方法

    2021-07-24 18:58:27
  • 带你了解Java Maven的打包操作

    2022-08-03 15:23:33
  • Android UI使用HTML布局方法实例

    2023-04-07 09:14:11
  • 小菜编程成长记(一 面试受挫——代码无错就是好?)第1/3页

    2023-06-08 19:15:26
  • Kotlin Flow操作符及基本使用详解

    2022-08-24 16:32:30
  • 解决spring.thymeleaf.cache=false不起作用的问题

    2022-03-25 04:27:15
  • 详解Java中Duration类的使用方法

    2021-07-30 20:09:28
  • Java后端Tomcat实现WebSocket实例教程

    2023-08-22 17:31:09
  • Java ConcurrentHashMap用法案例详解

    2023-08-30 02:01:41
  • c# 快速排序算法

    2021-10-18 07:33:20
  • Zookeeper事务日志预分配空间解读

    2022-03-16 22:36:49
  • Android:Field can be converted to a local varible.的解决办法

    2022-01-23 16:53:14
  • asp之家 软件编程 m.aspxhome.com