解决Thymeleaf模板修改不实时更新问题的有效方法

本文讲述了在SpringBoot中,如何通过修改YML文件的prefix属性来控制Thymeleaf模板的加载方式,file方式可以实现模板修改后实时生效,而classpath方式需要重新编译项目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

修改yml文件,thymeleaf中的prefix: file:D:/resources是重点,如果只修改了cache:false也会不生效

spring:
  thymeleaf:
    # 不启用模版缓存
    cache: false
    # 修改模板存放位置,使用file方式修改模板文件实时生效不需要重新编译
    prefix: file:D:/resources
    # 如果使用classpath方式每次改动模板都需要重新编译非常麻烦
    #prefix: classpath:D:/resources

classpath方式

当你使用classpath:/resources作为模板前缀时,你告诉Spring Boot从类路径(即编译后的资源目录,通常是target/classes)中加载模板文件。这通常发生在你的模板文件位于src/main/resources目录或其子目录下,并且当你构建项目时,这些文件会被复制到输出目录(即类路径)。

由于模板文件是类路径的一部分,因此当你修改这些文件时,这些更改并不会立即反映到正在运行的应用程序中。这是因为修改的是源文件,而不是类路径中编译后的文件。为了看到更改,你需要重新构建项目,以便将最新的模板文件复制到类路径中。

file方式

另一方面,当你使用file:D:/resources作为模板前缀时,你告诉Spring Boot直接从文件系统的特定目录加载模板文件。这意味着Spring Boot将直接读取指定目录中的模板文件,而不是从类路径中读取。

因此,当你修改这些文件时,由于Spring Boot直接读取文件系统上的文件,所以你不需要重新构建项目就能看到更改。只要确保Spring Boot有权限读取这些文件,并且文件路径是正确的,你就可以实时看到模板的更改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值