【问题标题】:How to generate static files from a Spring Thymeleaf project?如何从 Spring Thymeleaf 项目生成静态文件?
【发布时间】:2022-10-06 11:28:19
【问题描述】:

我有一个使用 Spring Thymeleaf 构建的网站,我想在一个平面目录中生成文件,例如 index.html、css 和 js 文件,以便我可以从AWS S3 存储桶。该项目是一个 Gradle 项目。我该怎么做呢?先感谢您。

  • 这是不可能的。您需要一台服务器来运行 Spring 和 Thymeleaf 的 Java 代码。

标签: spring gradle thymeleaf spring-thymeleaf


【解决方案1】:

您可以将 Thymeleaf 作为 Java 程序(而不是在服务器上)运行并生成如下 HTML 文件:

public class Application {

  public static void main(String... args) {
    SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver();
    resolver.setApplicationContext(new AnnotationConfigApplicationContext());
    resolver.setPrefix("classpath:/html/");
    resolver.setSuffix(".html");
    resolver.setCharacterEncoding("UTF-8");
    resolver.setTemplateMode(TemplateMode.HTML);

    SpringTemplateEngine engine = new SpringTemplateEngine();
    engine.setTemplateResolver(resolver);

    Context context = new Context();
    String html = engine.process("index", context);
    System.out.println(html);
  }
}

只需将System.out.println(html); 替换为将html 变量保存到文件即可。然后你只需要阅读你想要解释的所有文件的目录并运行所有的代码。

这不适用于表单——但我假设如果您尝试将 Thymeleaf 编译为静态 html,则不需要任何实际动态内容。

您还必须包含正确的依赖项。我使用这些:

  <groupId>org.springframework</groupId>
  <artifactId>spring-core</artifactId>
  
  <groupId>nz.net.ultraq.thymeleaf</groupId>
  <artifactId>thymeleaf-layout-dialect</artifactId>

  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  
  <groupId>org.thymeleaf</groupId>
  <artifactId>thymeleaf</artifactId>

  <groupId>org.thymeleaf</groupId>
  <artifactId>thymeleaf-spring5</artifactId>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 2016-12-25
    • 1970-01-01
    • 2018-12-25
    • 2018-10-06
    • 2023-03-12
    相关资源
    最近更新 更多