Thymeleaf是围绕自然模板的概念设计的,该模板允许进行静态原型制作:模板逻辑不会影响用作原型的模板。 尽管这是一项很棒的技术,但您可能还希望在运行的Spring Boot应用程序中查看结果,而不必每次更改Thymeleaf视图时都重新启动服务器。 此外,您可能希望所有其他静态资源(如JavaScript和CSS文件)也可以在开发期间重新加载。 如何用Spring Boot实现它?

Thymeleaf模板重新加载

在使用Thymeleaf视图引擎的Spring Boot应用程序上工作时,需要两个属性来确保重新加载模板: spring.thymeleaf.cachespring.thymeleaf.prefix 。 将spring.thymeleaf.cache设置为false将禁用模板缓存,而spring.thymeleaf.prefix允许指定在构建视图URL时前缀为视图名称的前缀。

范例(Windows):

spring.thymeleaf.prefix=file:///C:/Projects/github/spring-boot-thymeleaf/src/main/resources/templates/

假设所有模板都在指定的路径中,则更改它们将需要刷新页面,而无需重新启动应用程序/服务器。

这两个属性都可以在开发配置文件中使用(例如,创建application-dev.properties并在dev配置文件处于活动状态时运行应用程序)。

重新加载静态资源(CSS,JavaScript)

使用Spring Boot和Thymeleaf在开发期间重新加载模板相对容易。 如果要重新加载CSS和JavaScript等静态资源,则方法非常相似:您需要使用spring.resources.static-locations

范例(Windows):

spring.resources.static-locations=file:///C:/Projects/github/spring-boot-thymeleaf//src/main/resources/static/

在上面的示例中,只有一个位置,但是该属性接受多个位置。

此外,您可以配置更多与静态资源相关的设置,例如缓存等。请参考Spring Boot文档并了解有关spring.resources.*属性( http://docs.spring.io/spring-boot/docs /current/reference/html/common-application-properties.html )

application-dev.properties

最终的解决方案如下所示:

#
# Development profile with templates and static resources reloading
## Path to project
project.base-dir=file:///C:/Projects/github/spring-boot-thymeleaf# Templates reloading during development
spring.thymeleaf.prefix=${project.base-dir}/src/main/resources/templates/
spring.thymeleaf.cache=false# Static resources reloading during development
spring.resources.static-locations=${project.base-dir}/src/main/resources/static/
spring.resources.cache-period=0

注意:您可以在本文的源代码参考中找到它: HOW-TO:使用Maven的Spring Boot和Thymeleaf

如果您不想创建新的配置文件,则可以在运行应用程序时简单地将属性作为JVM选项( -D )提供。

替代方法– Spring Boot DevTools

Spring Boot的模块之一是DevTools(从1.3版开始)。 在许多功能中,它无需重新配置即可实时重新加载Thymeleaf模板和静态资源。 它还支持LiveReload协议。

注意 :更改模板/资源时,请重新生成项目(在Windows上为CTRL + F9),然后刷新。 当您安装LiveReload插件(我使用Chrome的LiveReload插件进行了测试: https ://chrome.google.com/webstore/detail/livereload/jnihajbhpnppcggbcgedagnkighmdlei)后,页面会自动刷新。

在此处了解更多信息: https : //spring.io/blog/2015/06/17/devtools-in-spring-boot-1-3以及此处: https : //t.co/td23nP73mt

摘要

感谢本文中介绍的技术,您可以使Spring Boot应用程序的前端开发变得更加容易。 但是从生产环境中的类路径之外为您的Spring Boot应用程序提供Thymeleaf模板和静态资源的可能性也可能带来一些优势。 示例之一可能是分离后端和前端部署。

也可以看看

  • 操作方法:Maven的Spring Boot和Thymeleaf
  • GitHub上的Spring Boot和Thymeleaf与Maven

翻译自: https://www.javacodegeeks.com/2016/12/spring-boot-thymeleaf-reload-templates-static-resources-without-restarting-application.html

Spring Boot和Thymeleaf:重新加载模板和静态资源,而无需重新启动应用程序相关推荐

  1. Spring Boot干货系列:(六)静态资源和拦截器处理 | 掘金技术征文

    原本地址:Spring Boot干货系列:(六)静态资源和拦截器处理 博客地址:tengj.top/ 前言 本章我们来介绍下SpringBoot对静态资源的支持以及很重要的一个类WebMvcConfi ...

  2. Spring Boot(3) Web开发(1)静态资源处理

    Spring Boot(3) Web开发(1)静态资源处理 基于spring boot 2.4.3版本 1.静态资源访问 1.1 静态资源目录 把静态资源放在类路径下的以下目录:/static; /p ...

  3. Spring Boot与Web开发简介||SpringBoot对静态资源的映射规则

    Web开发 1.简介 使用SpringBoot: 1).创建SpringBoot应用,选中我们需要的模块: 2).SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运 ...

  4. Spring Boot (十五): Spring Boot + Jpa + Thymeleaf 增删改查示例

    <p>这篇文章介绍如何使用 Jpa 和 Thymeleaf 做一个增删改查的示例.</p> 先和大家聊聊我为什么喜欢写这种脚手架的项目,在我学习一门新技术的时候,总是想快速的搭 ...

  5. Spring Boot 引入 Thymeleaf 及入门使用

    目录: 引言 1.Spring Boot 引入 Thymeleaf 1.1 修改 Thymeleaf 版本 1.2 修改 Thymeleaf Layout Dialect 版本 2.Thymeleaf ...

  6. Spring Boot 使用Thymeleaf

    2019独角兽企业重金招聘Python工程师标准>>> 1.引入thymeleaf: <dependency> <groupId>org.springfram ...

  7. 没有找到 html 模板,Spring Boot and Thymeleaf:找不到HTML模板

    我正在嘗試用Thymeleaf創建一個基於Spring Boot的應用程序.我使用PetClinic樣本作爲起點. 我的應用程序找不到一些模板.Spring Boot and Thymeleaf:找不 ...

  8. java 模板引擎_极简 Spring Boot 整合 Thymeleaf 页面模板

    点击"牧码小子"关注,和众多大牛一起成长! 关注后,后台回复 java ,领取松哥为你精心准备的技术干货! 虽然现在慢慢在流行前后端分离开发,但是据松哥所了解到的,还是有一些公司在 ...

  9. Spring Boot集成Thymeleaf模板引擎

    一.Thymeleaf 模板介绍 Spring Boot 推荐使用Thymeleaf 来代替传统开发中的JSP,那么什么是Thymeleaf 模板引擎呢?下面就来简单的介绍一下. Thymeleaf ...

最新文章

  1. JAVA线程池的简单实现及优先级设置
  2. iphone屏幕录制_今日应用:iPhone 不越狱也可以录制屏幕了
  3. map和vector的迭代器失效问题(某公司招聘笔试试题)
  4. avalon 框架
  5. java类加载过程_java类的加载过程
  6. Spark函数讲解: combineByKey
  7. 咪蒙,毕业两年成阿里P7,不止阿里HR不同意......
  8. 麦本本笔记本怎么U盘重装Win10系统教学?
  9. 电子身份证助力打击钓鱼攻击
  10. 2020 中国独立开发者生存现状调研报告
  11. iOS本机号码一键登录
  12. A Number Theoretical Problem
  13. 一份来自区块链行业的《高考志愿填报指南》
  14. matlab时间延迟怎么写,大家帮我看一下这个c_c方法时间延迟的程序运行结果??...
  15. Microsoft (Office) 365本地无法激活解决方案
  16. Java后端实现安卓/IOS移动端消息推送(百度云推送)
  17. CCNA学习笔记10-OSPF
  18. java虚拟机 (JVM)
  19. 「企业安全架构」EA874:信息安全架构
  20. XMPP协议和asmack

热门文章

  1. 厉害了,关于String的10道经典面试题
  2. 《走遍中国》珍藏版(一)
  3. C#使用集合组织相关数据
  4. String与StringBuffer、StringBuilder之间的转换
  5. Mybatisplus用updateById默认没有传的值不会进行改变
  6. win10控制视频声音大小
  7. 范式 第一 第二 第三范式
  8. centos8安装并启动tomcat9
  9. 局域网物理机怎么访问虚拟机
  10. SpringMVC控制器方法获取参数时@RequestParam注解加与不加的区别