如何在不重新启动服务器的情况下查看 Broadleaf 中的 Thymeleaf 模板更改?
How do I see Thymeleaf template changes in Broadleaf without restarting my server?
我下载了 Broadleaf 的社区版,我正在尝试更改 Thymeleaf 模板中的一些标记。 (例如:layout/homepage.html)。但是,当我进行更改时,除非重新启动 Broadleaf 站点服务器,否则在刷新浏览器时看不到更改。我在编辑 JS 和 CSS 时遇到同样的问题。
是否需要更改设置才能在不重新启动服务器的情况下查看前端更改?我怀疑某种缓存设置阻止了模板从文件中重新加载。
抱歉误导论坛 post。他所指的缓存设置并不能缓解您遇到的问题。如果没有 Jrebel 或某种热交换机制,您将无法在不重新启动服务器的情况下看到更改。可能有用的一件事是,如果您 运行 来自 IDE 的项目,模板更改可能会显示,因为它可能会将您更改的模板放入部署的 Jar 中。
在 google 搜索后,我也 运行 搜索了 https://blog.codeleak.pl/2016/12/thymeleaf-reload-templates-and-static-resources.html。我不确定它是否有效,但值得一试
当 运行 从具有 spring-boot maven 目标的终端 运行 时,使用 IDE 重建似乎可以与 oob Breadleaf 演示站点一起使用:
mvn spring-boot:run
一旦它是 运行,如果你更新 IDE 里面的 templates/css 并且 build automatically enabled(重要!),那么该网站确实反映了刷新后的变化。
我验证了这适用于 IntelliJ、Spring 工具套件和基础 Eclipse。
对于 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;
}
那是一个"Demo Site"项目,SiteConfig.javaclass。
这个 bean 位于模板解析器列表的顶部,因此对模板文件的更改是从 src 文件夹中提取的,无需重新构建。
需要做的是在 Thymeleaf 中禁用模板捕获。
将其添加到您的应用程序属性文件中。
spring.thymeleaf.cache=false
我下载了 Broadleaf 的社区版,我正在尝试更改 Thymeleaf 模板中的一些标记。 (例如:layout/homepage.html)。但是,当我进行更改时,除非重新启动 Broadleaf 站点服务器,否则在刷新浏览器时看不到更改。我在编辑 JS 和 CSS 时遇到同样的问题。
是否需要更改设置才能在不重新启动服务器的情况下查看前端更改?我怀疑某种缓存设置阻止了模板从文件中重新加载。
抱歉误导论坛 post。他所指的缓存设置并不能缓解您遇到的问题。如果没有 Jrebel 或某种热交换机制,您将无法在不重新启动服务器的情况下看到更改。可能有用的一件事是,如果您 运行 来自 IDE 的项目,模板更改可能会显示,因为它可能会将您更改的模板放入部署的 Jar 中。
在 google 搜索后,我也 运行 搜索了 https://blog.codeleak.pl/2016/12/thymeleaf-reload-templates-and-static-resources.html。我不确定它是否有效,但值得一试
当 运行 从具有 spring-boot maven 目标的终端 运行 时,使用 IDE 重建似乎可以与 oob Breadleaf 演示站点一起使用:
mvn spring-boot:run
一旦它是 运行,如果你更新 IDE 里面的 templates/css 并且 build automatically enabled(重要!),那么该网站确实反映了刷新后的变化。
我验证了这适用于 IntelliJ、Spring 工具套件和基础 Eclipse。
对于 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;
}
那是一个"Demo Site"项目,SiteConfig.javaclass。
这个 bean 位于模板解析器列表的顶部,因此对模板文件的更改是从 src 文件夹中提取的,无需重新构建。
需要做的是在 Thymeleaf 中禁用模板捕获。 将其添加到您的应用程序属性文件中。
spring.thymeleaf.cache=false