在不重新启动服务器的情况下,如何查看Broadleaf中的Thymeleaf模板更改?

时间:2018-11-02 18:29:01

标签: thymeleaf broadleaf-commerce

我下载了Broadleaf的社区版,并且试图更改Thymeleaf模板中的某些标记。 (例如:layout / homepage.html)。但是,进行更改时,除非重新启动Broadleaf站点服务器,否则刷新浏览器时看不到更改。编辑JS和CSS时遇到相同的问题。

是否需要更改设置才能在不重新启动服务器的情况下查看前端更改?我怀疑某种缓存设置会阻止模板从文件中重新加载。

3 个答案:

答案 0 :(得分:2)

很抱歉出现误导性论坛帖子。他指的缓存设置并不能缓解您遇到的问题。如果没有Jrebel或某种热交换机制,则在不重新启动服务器的情况下将看不到更改。可能有用的一件事是,如果您从IDE运行项目,则可能会显示模板更改,因为它会将更改后的模板放置到已部署的Jar中。

在Google搜索之后,我也确实遇到了https://blog.codeleak.pl/2016/12/thymeleaf-reload-templates-and-static-resources.html。我不确定是否可行,但是值得一试

答案 1 :(得分:1)

从具有spring-boot maven目标的终端运行时,使用oob Breadleaf演示站点似乎可以使用IDE重建:

mvn spring-boot:run

一旦运行,如果您在自动启用构建(重要!)的情况下更新IDE中的模板/ css,则该站点确实会在刷新时反映出更改。

我验证了它可以与IntelliJ,Spring Tool Suite和基本Eclipse一起使用。

答案 2 :(得分:0)

对于Broadleaf 6.0.6,我不得不添加模板解析器bean:

@Bean
public BroadleafTemplateResolver devTemplateResolver() {
    BroadleafThemeAwareTemplateResolver resolver = new BroadleafThemeAwareTemplateResolver();
    resolver.setPrefix(Paths.get("src/main/resources/").toUri().toString());
    resolver.setTemplateFolder("webTemplates/");
    resolver.setSuffix(".html");
    resolver.setCharacterEncoding("UTF-8");
    resolver.setCacheable(false);
    resolver.setOrder(10);
    return resolver;
}

这是一个“演示站点”项目,即SiteConfig.java类。

此bean转到模板解析器列表的顶部,因此可以从src文件夹中提取对模板文件的更改,而无需重新构建。