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".

希望这对遇到此问题的其他人有所帮助。