我正在用Thymeleaf构建一个Spring Boot应用程序。我的模板(视图)和静态文件夹位于src / main / resources / static和src / main / resources / templates下。当我通过main方法(使用eclipse)运行应用程序时,一切都很好。但是,我按照create a war file的说明进行操作,当我将其部署到Tomcat 7时 - 缺少静态内容,只显示了Thymeleaf html模板。
我搜索了SO上的所有相关线程并尝试了许多变体 - 使用@EnableWebMVC,删除了我的所有配置,将静态文件夹名称更改为“public”等。似乎没有什么对我有用,这看起来就像包装有问题一样。
我的配置类:
@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();
}
}
使用main方法的类:
@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);
}
}
答案 0 :(得分:1)
终于找到了问题。
我和Themeleaf中的标签都以正斜杠开头。例如 - “/css/style.css”而不是“css / style.css”。
希望这可以帮助遇到此问题的其他人。