目 录CONTENT

文章目录

SpringBoot3 解决NoResourceFoundException: No static resource favicon.ico.异常

Administrator
2024-05-17 / 1 评论 / 0 点赞 / 1110 阅读 / 3184 字

SpringBoot3 解决NoResourceFoundException: No static resource favicon.ico.异常

spring boot3项目中浏览器中访问报错找不到favicon.ico,虽然不影响使用,用api工具也可以忽略这个异常,但是防止浏览器访问时出现异常干扰日志,所以在此自己处理一下。

2024-05-17T16:34:27-trlhhi.png

SpringBoot3中关闭favicon.ico的配置已过时,配置无效了

spring.favicon.enabled=false (过时的配置)

这个情况有人去Github提了issue,但是Spring开发老哥说了这个不是bug,那就只能自己解决了。

2024-05-17T16:41:52-dvhtzz.png

解决方案

第一种是放置一个favicon.ico文件到项目中,但是本次针对独立的后端开发,不需要favicon.ico,所以不考虑这种方式。

方式二

忽略favicon.ico请求

package com.zaoshan.server.config;

import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.http.HttpStatus;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @Author: ZhangWeinan
 * @Description:
 * @date 2024-05-17 16:19
 */
@SpringBootConfiguration
public class FaviconConfiguration implements WebMvcConfigurer {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new HandlerInterceptor() {
            @Override
            public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
                if (!"GET".equalsIgnoreCase(request.getMethod()) || !request.getRequestURI().toString().equals("/favicon.ico")) {
                    return true;
                }
                response.setStatus(HttpStatus.NO_CONTENT.value()); // 设置状态码为204 No Content
                return false;
            }
        }).addPathPatterns("/**");
    }
}

0

评论区