Spring Boot 修改网站图标为自己的图标

本文介绍如何在SpringBoot项目中禁用默认的favicon图标,并自定义网站图标。通过修改配置文件设置spring.mvc.favicon.enabled属性为false,然后将自定义的favicon.ico图标放置于resources/public或resources/static目录下。

在配置文件中关闭Spring Boot 的默认图标。

spring.mvc.favicon.enabled=false

然后将自己的网站图标放在resources/public 或者是resources/static 目录下,名命为favicon.ico

### Spring Boot 更换 `favicon.ico` 不显示解决方案 #### 方法一:禁用内置 Favicon 支持并手动提供图标文件 为了确保自定义的 `favicon.ico` 能够正常加载,在应用程序属性配置文件中设置 `spring.mvc.favicon.enabled=false` 可以关闭Spring Boot自动处理Favicon的功能[^4]。 ```properties # application.properties 或者 application.yml 中添加此行来禁用默认行为 spring.mvc.favicon.enabled=false ``` 接着,将自定义的 `favicon.ico` 文件放置于项目的静态资源目录下,默认情况下可以放在 `/src/main/resources/static/` 目录内。这样当浏览器尝试获取 favicon 时就能找到对应的文件了。 #### 方法二:通过控制器映射指定路径返回图标 另一种方法是在应用里创建一个专门用于响应 `/favicon.ico` 请求的Controller类: ```java import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import java.io.File; import java.nio.file.Files; @Controller public class FaviconController { @GetMapping("/favicon.ico") public ResponseEntity<byte[]> getFavicon() throws Exception { File file = new File("path/to/favicon.ico"); byte[] imageContent = Files.readAllBytes(file.toPath()); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.IMAGE_X_ICON); return new ResponseEntity<>(imageContent, headers, HttpStatus.OK); } } ``` 上述代码片段展示了如何编写一个简单的 Controller 来处理对于 `/favicon.ico` 的 HTTP GET 请求,并返回位于特定位置上的 `.ico` 文件作为响应体的一部分[^1]。 #### 处理与 Spring Security 集成的情况 当集成了 Spring Security 后可能会遇到由于安全策略导致无法正确加载 favcion 的情况。此时可以在 Web 安全配置器 (WebSecurityConfigurerAdapter) 中允许对 `/favicon.ico` 进行无权限访问: ```java @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/favicon.ico").permitAll(); // 添加这一句即可解决问题 // ...其他的安全配置... } ``` 这样做之后就可以让未登录状态下的用户也能顺利取得站点图标而不会因为缺少认证而导致 404 错误发生[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值