Netbeans 8 不会重新加载静态 Thymeleaf 文件

Ham*_*ish 4 spring netbeans maven thymeleaf spring-boot

我正在通过 Maven 使用 Spring Boot 和 Thymeleaf。当我进行更改时,我似乎无法让 Netbeans 自动重新部署我的任何 Thymeleaf 模板文件。为了查看更改,我需要进行完整的清理/构建/运行。这需要太长时间。

模板在src/main/resources/templates. 我在 src/main/resources/ 中有一个 application.properties 文件,带有spring.thymeleaf.cache=falsespring.template.cache=false

我在项目设置中打开了“保存时编译”、“保存时复制资源”和“保存时部署”。

我的 Maven 构建生成了一个战争文件,Netbeans 将其部署到 Tomcat,我正在使用注释@EnableAutoConfiguration

Netbeans热部署对 Java 类的更改,但不会对 src/main/resources/ 中的任何静态文件进行热部署。

使用中的软件:

  • Mac OS X 10.9.4
  • 爪哇 1.8
  • Netbeans 8.0.1
  • 雄猫 8.0.12
  • 弹簧靴 1.1.7
  • Thymeleaf 2.1.3(通过 Spring Boot)

非常感谢任何指导。

Amr*_*afa 5

一个选项是研究配置 Thymeleaf 的FileTemplateResolver

要使用 Spring Boot 做到这一点,请定义一个实现ITemplateResolver具有 name的接口的 bean defaultTemplateResolver,当存在时,Spring Boot 将采用它而不是其默认值,这是如何完成的,并假设您已激活组件扫描,因此此配置类将被自动拾取:

@Configuration
public class ThymeleafConfiguration {
  @Bean
  public ITemplateResolver defaultTemplateResolver() {
    TemplateResolver resolver = new FileTemplateResolver();
    resolver.setSuffix(".html");
    resolver.setPrefix("path/to/your/templates");
    resolver.setTemplateMode("HTML5");
    resolver.setCharacterEncoding("UTF-8");
    resolver.setCacheable(false);
    return resolver;
  }
}
Run Code Online (Sandbox Code Playgroud)

prefix应是,当添加到您的运行时的工作目录(CWD),将解析为模板目录的相对路径。如果您不确定,请将其设置为完整的绝对路径,但是上面的 bean 就没有意义了。由于将spring.thymeleaf.prefix属性设置为绝对路径可能会产生相同的效果。