在页面显示静态资源,在程序中非常常见,当然也有很多种方式例如保存在resources/META-INF目录下或直接引用本地路径等。
1、了解springboot的静态资源的地址与访问路径
springboot自己是有默认的静态访问资源地址和路径(默认寻找static目录),如果你在配置文件中修改
则会覆盖其默认配置。
那先来了解一下在配置文件中想更改默认地址的代码:
spring.mvc.static-path-pattern
这句话的意思的你应该以什么路径来访问静态资源,也可以说静态资源满足这个配置路径才会处理此请求。
#这种情况下只有请求路径满足img格式才可以处理此请求
#如果按照默认的8080端口的话那么路径就应该为localhost:8080/img/1.jpg
#此时我们想找寻1.jpg的图片,那么springboot就会默认在该路径下寻找对应的文件,
#而寻找对应文件的地址就应该由spring.resources.static-locations里决定spring.mvc.static-path-pattern=/img/**
spring.resources.static-locations
这行代码配置用来告诉springboot应该去什么路径下访问并寻找相应的文件
默认的官方配置
pring.resources.static-locations=classpath:/static,classpath:/public,classpath:/resources,classpath:/META-INF/resources
这里的匹配机制是列表性的会依次寻找相应目录是否有对应的文件
但是大家也都发现了,这些是项目里自带的资源目录如果我又想访问本地
路径的资源呐?
引用本地路径资源
spring.resources.static-locations=file:F:/images/rotPhoto/
这里我们引用的是F盘的路径,想要成功引用只需要在路径前面加上file即可,
不过根据网上资料显示,不同操作系统之间file的写法好像并不相同,这里演示的>Windows的写法。
当然你如果觉得这样不好的话,也可以通过bean的方式来修改,这样的话需要你创建个extends WebMvcConfigurerAdapter 的类,类重写里面的addResourceHandlers方法来进行修改。
通过查阅资料,也可以通过xml的格式来进行修改代码如下:
<mvc:resources mapping="/resources/**" location="/public-resources/">
<mvc:cache-control max-age="3600" cache-public="true"/>
</mvc:resources>
总结:spring.mvc.static-path-pattern 更像是指定http请求访问的地址规范,spring.resources.static-locations则是请求之后访问文件的路径!
2、结合springboot,thymeleaf 来简单的实现访问本地路径图片到浏览器上!
博主使用工具为sts,maven,boot版本都为截稿前官网最新(2020.6.30)
- 创建项目
1.修改静态资源的地址和访问路径的配置文件
代码如下:spring.resources.static-locations=file:F:/images/rotPhoto/
spring.mvc.static-path-pattern=/**
博主使用的是自己F盘路径下的images文件夹里的rotPhoto文件夹下的目录
这里出示的为properties配置文件的代码。
2.创建controller页面
3.创建thymeleaf页面
需要的thymeleaf页面配置代码:<html xmlns:th="http://www.thymeleaf.org" lang="en">
- 添加代码
1.博主创建的thymeleaf页面叫Demo
控制controller代码如下:
@RequestMapping("/Demo")
public String demo(Model model){
String img2 ="/1.jpg";
model.addAttribute("img2", img2);
return "Demo";
}
博主相应目录有一个jpg格式的图片名1,这里定义一个文件名的字符串
用model向前端页面传值
Demo页面代码如下:
<img th:src="@{${img2}}">
用${img2} 来接受后台传入的数据,这里用到了th:src
- 运行
1.启动@SpringBootApplication类
运行成功之后,去浏览器输入请求
自此显示成功
补:文件路径图片
连接数据库这几天补上~~~~~~ O(∩_∩)O哈哈~
2020-7-07:
比较忙,一直没时间,不要慌再等等O(∩_∩)O 2020 - 7-10
本文理论方面参考博客:
大家如果觉得博主表达的不好,推荐大家去看原博主