尝试在 Thymeleaf 和 Spring Security 项目中插入图像时出现 404 错误

Posted

技术标签:

【中文标题】尝试在 Thymeleaf 和 Spring Security 项目中插入图像时出现 404 错误【英文标题】:404 error while trying to insert an image in a Thymeleaf and Spring Security project 【发布时间】:2018-01-18 01:27:26 【问题描述】:

我真的需要帮助。

这是我的项目结构,我正在尝试将图片插入到我的页面中,如下所示:

<div class="modal-header" align="center">
  <img class="img-circle" id="img_logo" src="../../static/images/asblogo.jpg"
       th:src="@/images/asblogo.jpg"/>
</div>

在模板 login.html 中。我的 SecurityConfig 和 WebMvcConfig 如下所示: 在此处输入图片说明

我不知道为什么我仍然收到 404 或 302 错误。

拜托,你能帮帮我吗?我将非常感谢。 谢谢!!!

【问题讨论】:

一个问题:您是否仅在尝试将图像添加到登录页面时才收到此错误?删除 img 标签后会发生什么?你能看到登录页面吗? 【参考方案1】:

获取图片资源有多种选择:

方案一:根据自己的配置映射静态资源

转到WebMVCConfig 类并映射您网站的所有静态资源:

重写 addResourceHandlers 方法

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

选项 2:让 Spring 为您映射静态资源

在这种情况下,只需从 WebMVCConfig 类中删除 de @EnableWebMvc 注释

最后img标签应该是这样的:

img 标签:

<img th:src="@/images/yourlogo.jpg" />

修复 404 错误

转到WebMVCConfig类并修复登录页面的路径。您收到错误是因为 Spring 尝试重定向到 /login 路径,但 WebMVCConfig 类上不存在该路径,而不是 /logout 使用 /login,如下例所示:

   @Override
    public void addViewControllers(ViewControllerRegistry registry) 
        registry.addViewController("/login").setViewName("login");
    

希望对您有所帮助。

问候。

【讨论】:

非常好。在那种情况下,你能接受这个答案作为解决方案吗?问候

以上是关于尝试在 Thymeleaf 和 Spring Security 项目中插入图像时出现 404 错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 spring、thymeleaf 和 mongo 填充 html 选择

在 Spring Boot 应用程序中使用 JSP 和 Thymeleaf 视图

如何使用 Spring Security 和 Thymeleaf 获取当前登录用户的 ID

Thymeleaf 和 Spring 引导以及 Spring 安全性不起作用

模板解析时出错。Spring boot 和 Thymeleaf

Thymeleaf 和 Spring MVC 的表单参数为空