SpringBoot深入探究四种静态资源访问的方式
作者:zh_Tnis 发布时间:2021-11-30 02:42:46
1.默认的静态资源目录
/static
/public
/resources
/META-INF/resources
动态资源目录:/templates
2.resources静态资源目录图片存放
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
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).静态资源目录结构
3).package点击打包
4).install到本地仓库
(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).访问结果
来源:https://blog.csdn.net/zh_tnis/article/details/124897683


猜你喜欢
- Android绘图常用方法有哪些,下面一一为大家列举:1、有关画笔(Paint)的方法Paint mPaint= new Paint();m
- 本文实例讲述了Android实现固定屏幕显示的方法。分享给大家供大家参考。具体如下:在Android开发中我们会碰到开发屏幕扭转的情况,如何
- 效果图: //偶数随机 Random evenRanm
- 1. 简单工厂介绍简单工厂有一个具体的工厂类,可以生产不同的产品,属于创建型设计模式。注意:简单工厂模式 不属于23种设计模式之列2. 简单
- 1、通过注解ModelAttribute直接映射表单中的参数到POJO。在from中的action写提交的路径,在input的name写参数
- 1.首先,需要指定获取的文件夹,以及获取文件的文件名;文件夹:strLocalPath = System.Windows.Forms.App
- 题目:编写一个程序,在面板上移动小球。应该定义一个面板类来显示小球,并提供向上下左右移动小球的方法。请进行边界检查以防止小球移动到视线之外。
- 前言:Springboot的出现极大的简化了开发人员的配置,而这之中的一大利器便是springboot的starter,starter是sp
- 显示当前运行java代码的运行时的各种参数。不带显String操作。package systeminfo;import java.util.
- 前言工作中是否遇到这样的场景?1、需要异步线程执行,而且需要获取到线程执行返回的结果。2、如果执行过程异常,可以按照自定义方式消费异常信息。
- Guava为Java并行编程Future提供了很多有用扩展,其主要接口为ListenableFuture,并借助于Futures静态扩展。继
- isInstance和isAssignableFromobj instanceof Class判断obj是不是Class或者Class的子类
- 数组与链表的比较:数组通过下标访问的话是O(1)数组一旦声明 长度就是固定的数组的数据是物理逻辑均连续的链表增删要快一些, 数组遍历快一些长
- 目录引入依赖Java中使用GraphQL的API无参数简单查询带参数简单查询GraphQL可以通过Java的API来实现数据的查询,通过特定
- Spring AOP对嵌套方法不起作用今天在调研系统操作记录日志时,好多教程都是借助于Spring AOP机制来实现。于是也采用这种方法来实
- 上一篇,我们已经详细讲解了Android微信支付,今天接着为大家带来支付宝支付,支付宝支付相对微信支付要简单一些,吐槽一下,而且支付宝文档确
- 1.分支结构的概念当需要进行条件判断并做出选择时,使用分支结构2.if分支结构格式:if(条件表达式){语句块;}package com.l
- JavaFX主要致力于富客户端开发,以弥补swing的缺陷,主要提供图形库与media库,支持audio,video,graphic,ani
- 看了这个排行榜, 小编只想说:流水的编程语言,铁打的Java,C/C++!!人工智能的前景已经不用多说了,越来越多的人看重人工智能的前景,想
- 今天介绍下 Aspose.Words 对 word 中的图片进行删除string tempFile = Application.Startu