当前位置: 首页 > 知识库问答 >
问题:

Spring MVC 4静态资源未加载到Thymeleaf

陈瀚玥
2023-03-14

我正在尝试将静态资源加载到thymeleaf html文件。但是资源没有加载。有人知道我做错了什么吗。。。。

我在这里使用SpringJavaConfig这是我的Config类

@Configuration
@EnableScheduling
@ComponentScan(basePackages = "test.controller")
public class ControllerConfig extends WebMvcConfigurationSupport {

    private static final Logger log = LoggerFactory.getLogger(ControllerConfig.class);

    @Override
    public void configureMessageConverters(final List<HttpMessageConverter<?>> _converters) {
        _converters.add(getMappingJackson2HttpMessageConverter());
        addDefaultHttpMessageConverters(_converters);
    }

    @Override
    public void addResourceHandlers(final ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
    }

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }

    @Bean
    public MappingJackson2HttpMessageConverter getMappingJackson2HttpMessageConverter() {
        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
        converter.setObjectMapper(getObjectMapper());
        return converter;
    }

    @Bean
    public ObjectMapper getObjectMapper() {
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.configure(SerializationFeature.WRAP_ROOT_VALUE, true);
        objectMapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
        objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
        objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));

        return objectMapper;
    }

    @Bean
    public ServletContextTemplateResolver templateResolver() {
        ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver();
        templateResolver.setPrefix("/WEB-INF/views/");
        templateResolver.setSuffix(".html");
        templateResolver.setTemplateMode("HTML5");
        templateResolver.setCacheable(false);

        return templateResolver;
    }

    @Bean
    public SpringTemplateEngine templateEngine() {
        SpringTemplateEngine templateEngine = new SpringTemplateEngine();
        templateEngine.setTemplateResolver(templateResolver());

        return templateEngine;
    }

    @Bean
    public ViewResolver viewResolver() {
        ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
        viewResolver.setTemplateEngine(templateEngine());
        viewResolver.setOrder(1);

        return viewResolver;
    }
}

这是我的超文本标记语言页面。

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="utf-8"/>
    <title th:text="'Hello ' + ${name} + '!'"></title>
    <link th:href="@{/resources/css/main.css}" rel="stylesheet"/>
</head>
<body>
<h2 class="hello-title" th:text="'Hello ' + ${name} + '!'"></h2>
<script th:src="@{/resources/js/main.js}"></script>
</body>
</html>

这就是我的文件夹结构如何处理需要加载的静态资源。

我在互联网上找到了使用WebMVCConfigureAdapter的资源。但是我使用的是WebMvcConfigurationSupport。我没有改变这个的奢侈。

我添加的胸腺依赖性是

compile group: 'org.thymeleaf', name: 'thymeleaf-spring4', version: '2.1.2.RELEASE'
compile "org.springframework:spring-webmvc:${springVersion}" 

springVersion = 4.0.6.RELEASE

当我运行项目并加载HTML文件时,没有应用CSS。但HTML的加载情况与预期一样良好:(

共有1个答案

钱飞翼
2023-03-14

尝试这样配置您的资源:

registry.addResourceHandler("/**").addResourceLocations("类路径:/资源/")

并像这样链接您的css:

<link rel="stylesheet" th:href="@{/css/main.css}"/>
 类似资料:
  • 4.1 原生koa2实现静态资源服务器 4.2 koa-static中间件

  • 问题无法让Spring为静态资源添加资源处理程序。 背景信息我有一个Spring MVC webapp在独立的Jetty实例中运行。我的webapp结构是 我已经扩展了WebMVCConfigureAdaptor,添加了一个资源映射,这样URL就像公司一样。com/myservlet/resources/css/main。css将解析到webapp根目录/资源/css文件夹。 我的小控制器是这样的

  • 问题内容: 我得到了一个Spring MVC应用程序,该应用程序当前在目录中放置了一堆CSS和JS文件。 我通读了Spring Docs和一些有关如何使用ResourceHandlerRegistry类为模板加载这些文件的教程。我特别认为本教程中的代码段完全适合我的项目结构。 但是我的资源文件上总是显示404。 这是我当前正在使用的Application / Configuration类: 这是我

  • 我试图使用相对路径在jsp文件中加载静态资源,如css文件和javascript文件,但servlet映射似乎覆盖了对它们的映射。 项目结构: web.xml: mvc调度程序servlet。xml: 我尝试加载样式表的JSP文件: 我得到的错误是: 警告组织。springframework。网状物servlet。PageNotFound:1108-在名为“mvc dispatcher”的Disp

  • 前言 一个http请求访问web服务静态资源,一般响应结果有三种情况 访问文本,例如js,css,png,jpg,gif 访问静态目录 找不到资源,抛出404错误 原生koa2 静态资源服务器例子 demo源码 https://github.com/ChenShenhai/koa2-note/blob/master/demo/static-server/ 代码目录 ├── static # 静态资

  • 我将SpringMVC与Thymleaf和spring安全一起使用。我想加载一个页面使用Thymleaf模板,我可以加载我的静态资源。 例如,我想从template.html加载位于:static/img/theme/logo.png中的图片 我得到的是:结果 template.html: mvcConfig.java WebSecurityConfig: 源代码树