(4)Spring Boot Web开发---静态资源
使用之前将的快速创建项目的方法,勾选我们需要的场景,这里我需要 web --> web、sql --> mybatis、nosql --> redis ,就勾选相关的场景;
对静态资源的映射规则
/webjars/**凡是访问
/webjars/**都去calsspath:/META-INF/resources/webjars目录下面找资源;webjars是通过jar包形式引入静态资源,可以去 http://www.webjars.org 去看下都有哪些资源可以用过jar形式引入;通过
webjars方式引入的资源,它们的访问路径就是:
文件在webjars下面的路径;/**访问当前项目的任何资源 (静态资源文件夹)如果没有对应的处理器,处理请求,则去以下路径寻找 静态资源 (
/代表当前项目的根路径):classpath:/META-INF/resources/classpath:/resources/classpath:/static/classpath:/public/
欢迎页
静态资源文件夹下面的所有
index.html页面,都会被映射为/;如果在多个地方配置了首页,则static下面的index.html脱颖而出,成为首页 ;改变页面图标
比如像下面这样,将网页的图标变为自定义的图片;

只需要在静态资源文件夹下面,放一张自己喜欢的图片,取名叫
facvicon.ico即可 ;
后记:我们也可以改变静态资源文件夹的位置,通过在配置文件里面配置 :
spring.resources.static-locations=classpath:/,classpath:/yiaz (可配置多个,用逗号分隔)
这样前面默认的几个静态资源文件夹就失效了 ;
模板引擎

说到模板引擎,可能会感到陌生,其实我们之前使用的,现在感觉落后的 JSP 就是一个模板引擎;
模板引擎的思路就是,在模板中使用一下特殊的语法,表示这里需要填充数据,然后后来传来数据,最后将数据和模板一起交给模板引擎,模板引擎进行解析,就成了最后的页面,如上图所示;
Spring Boot 推荐使用的模板引擎是 thymeleaf,高级语言模板引擎;
- 引入
thymeleaf
<!--引入 thymeleaf 模板引擎-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
然后在我们的类库中,可以看到:

这里Spring Boot为我们添加的是 3.0.11 版本,我们可以自己设置版本;
在属性里面配置:
<!--自定义 thymeleaf 版本-->
<thymeleaf.version>3.0.9.RELEASE</thymeleaf.version>
<!-- 如果我们使用 3以上的thymeleaf,则需要 layout2以上,这是它的布局功能的支持-->
<thymeleaf-layout-dialect.version>2.2.2</thymeleaf-layout-dialect.version>
这时候再看我们的类库,可以看到:

变为我们制定的版本了;
这里我们一般不要瞎改,就使用默认版本的,因为涉及到版本匹配的问题;比如,博主使用的是 2.1.3 的 Spring Boot ,经过上面的一通操作,代码成功的跑不起来了,提示版本不对;
Thymeleaf 使用 & 语法
只需要将我们的静态资源页面放在 classpath:/templates/ 下面就好了,thymeleaf 就会自动渲染;
引入名称空间
使用之前最好在页面中引入名称空间,以便得到语法提示;
<html xmlns:th="http://www.thymeleaf.org">
语法

但凡涉及到属性或者文本的操操作,
th:xxx会替换掉xxx,如果th:xxx没有值,则使用xxx,如果th:xxx有值,则使用th:xxx;表达式
(4)Spring Boot Web开发---静态资源的更多相关文章
- Springboot 系列(五)Spring Boot web 开发之静态资源和模版引擎
前言 Spring Boot 天生的适合 web 应用开发,它可以快速的嵌入 Tomcat, Jetty 或 Netty 用于包含一个 HTTP 服务器.且开发十分简单,只需要引入 web 开发所需的 ...
- Spring Boot实战:静态资源处理
前两章我们分享了Spring boot对Restful 的支持,不过Restful的接口通常仅仅返回数据.而做web开发的时候,我们往往会有很多静态资源,如html.图片.css等.那如何向前端返回静 ...
- Springboot 系列(七)Spring Boot web 开发之异常错误处理机制剖析
前言 相信大家在刚开始体验 Springboot 的时候一定会经常碰到这个页面,也就是访问一个不存在的页面的默认返回页面. 如果是其他客户端请求,如接口测试工具,会默认返回JSON数据. { &quo ...
- (5)Spring Boot web开发 --- Restful CRUD
文章目录 `@RestController` vs `@Controller` 默认访问首页 设置项目名 国际化 登陆 & 拦截 Restful 风格 @RestController vs @ ...
- Springboot 系列(六)Spring Boot web 开发之拦截器和三大组件
1. 拦截器 Springboot 中的 Interceptor 拦截器也就是 mvc 中的拦截器,只是省去了 xml 配置部分.并没有本质的不同,都是通过实现 HandlerInterceptor ...
- Spring Boot 中的静态资源到底要放在哪里?
当我们使用 SpringMVC 框架时,静态资源会被拦截,需要添加额外配置,之前老有小伙伴在微信上问松哥Spring Boot 中的静态资源加载问题:"松哥,我的HTML页面好像没有样式?& ...
- Spring Boot中的静态资源文件
Spring Boot中的静态资源文件 1.SSM中的配置 2.Spring Boot 中的配置 2.1 整体规划 2.2 源码解读 2.3 自定义配置 2.3.1 application.prope ...
- 四、Spring Boot Web开发
四.Web开发 1.简介 使用SpringBoot: 1).创建SpringBoot应用,选中我们需要的模块: 2).SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可 ...
- 4.Spring Boot web开发
1.创建一个web模块 (1).创建SpringBoot应用,选中我们需要的模块: (2).SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来 (3).自己编 ...
随机推荐
- [线段树]洛谷P5278 算术天才⑨与等差数列
题目描述 算术天才⑨非常喜欢和等差数列玩耍. 有一天,他给了你一个长度为n的序列,其中第i个数为a[i]. 他想考考你,每次他会给出询问l,r,k,问区间[l,r]内的数从小到大排序后能否形成公差为k ...
- mysql5.6源码部署
一.准备环境 环境:centos-7.3 一台软件版本:mysql-5.6.39 1.安装依赖yum -y install autoconf libaio bison ncurses-devel 2. ...
- 2019软工实践_Alpha(2/6)
队名:955 组长博客:https://www.cnblogs.com/cclong/p/11862633.html 作业博客:https://edu.cnblogs.com/campus/fzu/S ...
- 详解Unity Profiler内存分析问题
在使用Unity开发游戏的过程中,借助Profiler来分析内存使用状况是至关重要的.但许多开发者可能还对Profiler中各项数据表示的含义不甚明确,今天我们Unity官方的技术工程师柳振东,将针对 ...
- JVM 启动类加载器2
在运行期,一个Java类是由该类的完全限定名(binary name,二进制名)和用于加载该类的定义类加载器(defining loading)所共同决定的.如果同样名字(即相同的完全限定名)的类由两 ...
- graph embedding 之 struc2vec
在现实的网络中,构成网络的每个节点可能在网络中担任着某种角色.比如社交网络中,经常可以看见一些关注量很高的大V.两个大V在网络中的角色可能相同,因为他们都有很高的关注量:而大V与普通人(仅有几个关注) ...
- CMU Database Systems - Query Optimization
查询优化应该是数据库领域最难的topic 当前查询优化,主要有两种思路, Rules-based,基于先验知识,用if-else把优化逻辑写死 Cost-based,试图去评估各个查询计划的cost, ...
- openstack kvm cannot set up guest memory 'pc.ram': Cannot allocate memory
Kvm:启动报错:error: internal error: process exited while connecting to monitor: 2018-11-12T01:47:14.9933 ...
- StringBuffer & StringBuilder的区别
StringBuffer是线程安全的,内部有锁.所以比StringBuilder慢一点. 在单线程生成字符串的情况下,优先使用StringBuilder. 这就是为啥有时候IntelliJ Idea会 ...
- Kotlin 之操作符重载
Kotlin 之操作符重载 参考: kotlin in action kotlin 官方参考文档 运算符重载 Kotlin允许我们为自己的类型提供预定义的一组操作符实现(这些操作符都对应的成员函数 ...