【问题标题】:Spring MVC + Thymeleaf: not loading some resourcesSpring MVC + Thymeleaf:不加载一些资源
【发布时间】:2020-10-27 12:23:39
【问题描述】:

我是 Thymeleaf 和 Spring MVC 的新手。

我一直在处理以下问题:某些资源(css 或图像)不会被我的网页加载,而其他资源却可以。它们位于相同的路径和文件夹中,语法相同(我通过切换资源名称进行了检查,并且它有效)。

例如,我的 Thymeleaf 模板可以找到并读取我自己的 css 文件,但它不会读取 bootstrap-4 文件。

这是我的项目结构:

这里是尝试读取 bootstrap.css 的代码示例:

相同格式的图片也会出现同样的问题。

有什么可能导致问题的想法吗?

提前谢谢你

【问题讨论】:

  • 请不要将代码(thymeleaf 模板)作为图片发布。那些变得不可读。
  • 你有没有通过实现WebMvcConfigurer来配置resourceHandlers?如果那么也发布资源配置。我猜肯定是配置了硬编码文件路径。
  • 你见过这个吗? stackoverflow.com/a/50196388/600135
  • 你在同一个项目中使用spring security吗?
  • 我没有在项目中使用 Spring Security。我没有使用任何resourceHandler,应该什么时候使用它们? Spring 不扫描资源文件夹吗?

标签: spring thymeleaf


【解决方案1】:

您可以通过扩展 WebMvcConfigurerAdapter 来注册资源处理程序。

类似的东西。

@EnableWebMvc
@Configuration
public class SpringWebConfig extends WebMvcConfigurerAdapter {
        
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/css/**").addResourceLocations("/css/");
        registry.addResourceHandler("/styles/**").addResourceLocations("/styles/");
        registry.addResourceHandler("/js/**").addResourceLocations("/js/");
        registry.addResourceHandler("/images/**").addResourceLocations("/images/");
        registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
    }
}

反正css文件应该在css目录下

【讨论】:

  • 我不确定 resourceHandler 是做什么的或是什么(我会探索),无论如何我尝试了这段代码,但结果是一样的。另外,我已按照您的建议将文件夹名称更新为 css
  • 将css文件放在/main/webapp/css路径下。
【解决方案2】:

好的,我明白了问题所在:intelliJ。 它没有看到添加到项目中的新文件。

运行 mvn clean install 修复了问题

【讨论】:

    猜你喜欢
    • 2016-08-17
    • 2017-07-13
    • 2017-02-25
    • 2013-08-25
    • 2018-07-21
    • 2015-03-08
    • 1970-01-01
    • 2014-10-15
    • 2019-01-31
    相关资源
    最近更新 更多