Spring Boot & Thymeleaf 静态内容未在 war 文件中提供
Spring Boot & Thymeleaf static content not served in war file
我正在使用 Thymeleaf 构建 Spring 启动应用程序。我的模板(视图)和静态文件夹位于 src/main/resources/static 和 src/main/resources/templates 下。当我 运行 通过 main 方法(使用 eclipse)应用程序时,一切都很好。但是,我已按照 create a war file 的说明进行操作,当我将其部署到 Tomcat 7 - 静态内容丢失,仅显示 Thymeleaf html 模板。
我在 SO 上搜索了所有相关线程并尝试了许多变体 - 使用 @EnableWebMVC,删除我的所有配置,将静态文件夹名称更改为 "public" 等。似乎没有什么适合我,这看起来像是包装问题。
我的配置class:
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Autowired
private ThymeleafProperties properties;
/* Disable Thymeleaf auto-caching */
@Bean
public ITemplateResolver defaultTemplateResolver() {
TemplateResolver resolver = new TemplateResolver();
resolver.setResourceResolver(thymeleafResourceResolver());
resolver.setPrefix(this.properties.getPrefix());
resolver.setSuffix(this.properties.getSuffix());
resolver.setTemplateMode(this.properties.getMode());
resolver.setCharacterEncoding(this.properties.getEncoding());
resolver.setCacheable(false);
return resolver;
}
@Bean
public SpringResourceResourceResolver thymeleafResourceResolver() {
return new SpringResourceResourceResolver();
}
}
Class 主要方法:
@SpringBootApplication
public class RestApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(RestApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(RestApplication.class, args);
}
}
终于找到问题了
Themeleaf 中的我的和标签以正斜杠开头。例如 - “/css/style.css” 而不是 "css/style.css".
希望这对遇到此问题的其他人有所帮助。
我正在使用 Thymeleaf 构建 Spring 启动应用程序。我的模板(视图)和静态文件夹位于 src/main/resources/static 和 src/main/resources/templates 下。当我 运行 通过 main 方法(使用 eclipse)应用程序时,一切都很好。但是,我已按照 create a war file 的说明进行操作,当我将其部署到 Tomcat 7 - 静态内容丢失,仅显示 Thymeleaf html 模板。
我在 SO 上搜索了所有相关线程并尝试了许多变体 - 使用 @EnableWebMVC,删除我的所有配置,将静态文件夹名称更改为 "public" 等。似乎没有什么适合我,这看起来像是包装问题。
我的配置class:
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Autowired
private ThymeleafProperties properties;
/* Disable Thymeleaf auto-caching */
@Bean
public ITemplateResolver defaultTemplateResolver() {
TemplateResolver resolver = new TemplateResolver();
resolver.setResourceResolver(thymeleafResourceResolver());
resolver.setPrefix(this.properties.getPrefix());
resolver.setSuffix(this.properties.getSuffix());
resolver.setTemplateMode(this.properties.getMode());
resolver.setCharacterEncoding(this.properties.getEncoding());
resolver.setCacheable(false);
return resolver;
}
@Bean
public SpringResourceResourceResolver thymeleafResourceResolver() {
return new SpringResourceResourceResolver();
}
}
Class 主要方法:
@SpringBootApplication
public class RestApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(RestApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(RestApplication.class, args);
}
}
终于找到问题了
Themeleaf 中的我的和标签以正斜杠开头。例如 - “/css/style.css” 而不是 "css/style.css".
希望这对遇到此问题的其他人有所帮助。