【问题标题】:thymeleaf 3 spring 5 load css百里香叶 3 弹簧 5 负载 css
【发布时间】:2018-11-20 09:57:57
【问题描述】:

我正在尝试同时配置 Spring5Thymeleaf3

我正在开发 Eclipse,我使用 clean install 构建并使用 springboot:run 运行应用程序。

我已经设置了一个控制器和几个模板和 css,但似乎 thymeleaf 找不到 css,在浏览器中它显示模板(例如“panda.html”)而不加载 css 但如果我打开手动加载 .html 浏览器也加载 .css 。我需要在我的代码中添加什么?

这是映射

@Controller
public class MyController {

@Autowired
UtentiRepository utentiRepository;  

@GetMapping("/gab")
public String panda(Model model) {

return "panda";
}

这是模板解析器

@Bean
public SpringResourceTemplateResolver templatecssResolver() {
    SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
    templateResolver.setApplicationContext(applicationContext);
    templateResolver.setPrefix("classpath:/static/css/");
    templateResolver.setSuffix(".css");
    return templateResolver;
}

@Bean
public SpringResourceTemplateResolver templateResolver() {
    SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
    templateResolver.setApplicationContext(applicationContext);
    templateResolver.setPrefix("classpath:/templates/");
    templateResolver.setSuffix(".html");
    return templateResolver;
}

@Bean
public SpringTemplateEngine templateEngine() {
    SpringTemplateEngine templateEngine = new SpringTemplateEngine();
    templateEngine.addTemplateResolver(templatecssResolver());
    templateEngine.setTemplateResolver(templateResolver());
    templateEngine.setEnableSpringELCompiler(true);
    return templateEngine;
}

@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
    ThymeleafViewResolver resolver = new ThymeleafViewResolver();
    resolver.setTemplateEngine(templateEngine());
    registry.viewResolver(resolver);
}

【问题讨论】:

    标签: css spring spring-mvc spring-boot thymeleaf


    【解决方案1】:

    您必须覆盖您调用的 addResourceHandlers(..) 方法,该方法实现 WebMvcConfigurerAdapter 而不是 bean (SpringResourceTemplateResolver)

    所以只需添加覆盖方法

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
         registry.addResourceHandler("/css/**")
               .addResourceLocations("classpath:/static/css/");
    }
    

    在你的模板中使用

    <link href="<c:url value="/css/style.css" />" rel="stylesheet">
    

    或使用它们的叶子

    <link th:href="@{/css/style.css}" />" rel="stylesheet">
    

    【讨论】:

      猜你喜欢
      • 2021-12-11
      • 2018-04-02
      • 2018-11-24
      • 2016-09-17
      • 2018-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多