Spring Boot& Thymeleaf静态内容未在war文件中提供

时间:2015-07-03 10:33:54

标签: spring spring-boot thymeleaf

我正在用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);
}

}

1 个答案:

答案 0 :(得分:1)

终于找到了问题。

我和Themeleaf中的标签都以正斜杠开头。例如 - “/css/style.css”而不是“css / style.css”。

希望这可以帮助遇到此问题的其他人。