【问题标题】:Spring Boot: Publish Thymeleaf template without restarting the serverSpring Boot:在不重启服务器的情况下发布 Thymeleaf 模板
【发布时间】:2015-02-26 22:35:20
【问题描述】:

有没有办法在不运行和构建war文件的情况下发布Thymeleaf模板?
这是我的 gradle 文件的样子:

apply plugin: 'war'

war {
    baseName = 'bootBlog'
    version =  '0.1.0'
}


repositories {
    mavenLocal()
    mavenCentral()
    maven { url "https://repo.spring.io/libs-release" }
}

configurations {
    providedRuntime
}

dependencies {
    compile("org.springframework.boot:spring-boot-starter-thymeleaf")
    compile("org.springframework.boot:spring-boot-starter-data-mongodb")
    compile("org.springframework.boot:spring-boot-starter-actuator")
    testCompile("junit:junit")
    providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")

【问题讨论】:

  • 您想在生产环境还是开发环境中执行此操作?我认为解决方案不会在 gradle 中。
  • 将在开发环境中进行。寻找 gradle 特定的解决方案。

标签: spring spring-boot thymeleaf


【解决方案1】:

thymeleaf 的工作方式是在服务器启动时缓存所有 thymeleaf 模板。这就是您没有获得最新模板的原因。要停止缓存,在 application.properties 中有一个应用程序设置,称为:

 spring.thymeleaf.cache=false

关闭此选项可防止缓存并允许在不重新启动服务器的情况下刷新模板。

进入配置后,停止服务器并使用gradle bootRun 启动它。从现在开始,您无需刷新即可获得最新的 thymeleaf 模板。

【讨论】:

  • 这是否意味着我需要创建一个 application.properties 文件并设置这个值?
  • 是的。 application.properties 需要位于 jar 的根目录
  • 这为我节省了很多时间。
【解决方案2】:

如果你仍然想使用 Springboot 而不是 Gradle,你可以在你的属性文件中再添加两个属性:

  • project.base-dir(它不是 springboot 已知属性,将其视为 变量来定义项目的路径)
  • spring.thymeleaf.prefix

总结一下,你的属性文件应该包含这些属性:

  • project.base-dir=file:///path/to/your/project/base/dir

  • spring.thymeleaf.prefix=${project.base-dir}/src/main/resources/templates/

  • spring.thymeleaf.cache=false

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 2015-06-07
    • 1970-01-01
    • 2012-11-17
    • 2019-03-17
    • 2014-04-10
    • 1970-01-01
    相关资源
    最近更新 更多