【发布时间】:2022-10-06 11:28:19
【问题描述】:
我有一个使用 Spring Thymeleaf 构建的网站,我想在一个平面目录中生成文件,例如 index.html、css 和 js 文件,以便我可以从AWS S3 存储桶。该项目是一个 Gradle 项目。我该怎么做呢?先感谢您。
-
这是不可能的。您需要一台服务器来运行 Spring 和 Thymeleaf 的 Java 代码。
标签: spring gradle thymeleaf spring-thymeleaf
我有一个使用 Spring Thymeleaf 构建的网站,我想在一个平面目录中生成文件,例如 index.html、css 和 js 文件,以便我可以从AWS S3 存储桶。该项目是一个 Gradle 项目。我该怎么做呢?先感谢您。
标签: spring gradle thymeleaf spring-thymeleaf
您可以将 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>
【讨论】: