SpringBoot3 解決NoResourceFoundException: No static resource favicon.ico.異常
spring boot3項目中瀏覽器中訪問報錯找不到favicon.ico,雖然不影響使用,用api工具也可以忽略這個異常,但是防止瀏覽器訪問時出現異常干擾日志,所以在此自己處理一下。
SpringBoot3中關閉favicon.ico的配置已過時,配置無效了
spring.mvc.favicon.enabled=false (過時的配置)
這個情況有人去Github提了issue,但是Spring開發老哥說了這個不是bug,那就只能自己解決了。
解決方案
第一種是放置一個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 {@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new HandlerInterceptor() {@Overridepublic 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 Contentreturn false;}}).addPathPatterns("/**");}
}