Spring Boot项目设置网站图标(Favicon)

简介: Spring Boot项目设置网站图标(Favicon)

image.png正常情况下,每个网站都会有一个对应的网站图标(Favicon),在浏览器访问网站时,对应的浏览器标签上会出现对应的图标。如下图百度的图标:image.png对此Spring Boot项目也提供了支持,但不同版本有所区别,在最新版本中的使用,网络上大多数文章已经失效,本篇文章带大家看一下Spring Boot 2.x版本中的使用情况。

Spring Boot不同版本对Favicon的支持

在早些版本中Spring Boot对Favicon进行了默认支持,并且通过如下配置进行关闭操作:

spring.mvc.favicon.enabled=false ## 关闭

默认显示效果如下: image.png但在Spring Boot项目的issues中提出,如果提供默认的Favicon可能会导致网站信息泄露。如果用户不进行自定义的Favicon的设置,而Spring Boot项目会提供默认的上图图标,那么势必会导致泄露网站的开发框架。


因此,在Spring Boot2.2.x中,将默认的favicon.ico移除,同时也不再提供上述application.properties中的属性配置。更多详细信息可查看对应的issues:https://github.com/spring-projects/spring-boot/issues/17925

自定义Favicon

既然在当前版本中Spring Boot不支持默认的Favicon,我们就来看看如何自定义网站的Favicon。


正常情况下,直接将命名为favicon.ico的网站图标放在resources或static目录即可显示,但如果使用的版本无法显示。


首先排除浏览器缓存的问题。在撰写本文时多次遇到浏览器缓存导致无法展示的情况。一般操作步骤,清除浏览器缓存,重启浏览器,即可展示。


同时,如果需要在页面中通过代码进行引入。下面展示使用Thymeleaf时的引入方式:













<!DOCTYPE html><html lang="en" xmlns:th="http://www.thymeleaf.org"><head>    <meta charset="UTF-8"/>    <title>Hello Favicon</title>    <link rel="icon" th:href="@{/favicon.ico}" type="image/x-icon"/>    <link rel="bookmark" th:href="@{/favicon.ico}" type="image/x-icon"/></head><body><h1>Hello Favicon!</h1></body></html>

如果使用其他前端框架,可使用如下方式:













<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8"/>    <title>Hello Favicon</title>    <link rel="icon" href="/favicon.ico" type="image/x-icon"/>    <link rel="bookmark" href="/favicon.ico" type="image/x-icon"/></head><body><h1>Hello Favicon!</h1></body></html>

上述方式有一个弊端,那就是需要在每个展示的页面中都添加对应的代码。

注意事项

在使用的过程中,遇到最多的问题其实就是缓存导致的问题,比如Thymeleaf缓存未关闭、浏览器缓存等。


所以,如果在浏览器中打开网页并没有展示出效果,并不代表程序没起效。这时,可采用直接访问favicoin的形式来验证。

http://localhost:8080/favicon.ico

在浏览器访问上述链接,如果能够展示图标,则说明已经可以正常访问了。


另外,在web项目中,如果自定义了Web相关组件或拦截器也有可能导致无法显示或404,可对其进行有针对性的排查。



目录
相关文章
|
11天前
|
JSON Java 数据格式
springboot中表字段映射中设置JSON格式字段映射
springboot中表字段映射中设置JSON格式字段映射
23 1
|
5天前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
16 2
|
1月前
|
设计模式 前端开发 Java
Spring MVC——项目创建和建立请求连接
MVC是一种软件架构设计模式,将应用分为模型、视图和控制器三部分。Spring MVC是基于MVC模式的Web框架,通过`@RequestMapping`等注解实现URL路由映射,支持GET和POST请求,并可传递参数。创建Spring MVC项目与Spring Boot类似,使用`@RestController`注解标记控制器类。
34 1
Spring MVC——项目创建和建立请求连接
|
1月前
|
Java 关系型数据库 MySQL
Maven——创建 Spring Boot项目
Maven 是一个项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,简化了项目的构建和管理过程。其核心功能包括项目构建和依赖管理,支持创建、编译、测试、打包和发布项目。Maven 仓库分为本地仓库和远程仓库,远程仓库包括中央仓库、私服和其他公共库。此外,文档还介绍了如何创建第一个 SpringBoot 项目并实现简单的 HTTP 请求响应。
115 1
Maven——创建 Spring Boot项目
|
1月前
|
Java 关系型数据库 MySQL
如何使用 maven 创建一个 Spring Boot项目
Maven 是一个强大的项目管理工具,通过配置 `pom.xml` 文件自动获取所需的 jar 包,提高开发效率。其核心功能包括项目构建和依赖管理。项目构建支持编译、测试、打包和发布等流程,而依赖管理则通过中央仓库、本地仓库和私有服务器获取和管理项目依赖。示例中展示了如何创建第一个 SpringBoot 项目并实现简单接口。
24 1
如何使用 maven 创建一个 Spring Boot项目
|
1月前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
52 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
1月前
|
Java 应用服务中间件 Android开发
Eclipse创建Spring项目
本文介绍了在Eclipse中创建Spring项目的步骤,包括如何配置Tomcat服务器、创建项目、部署项目到Tomcat以及添加Spring框架所需的JAR包。
53 1
Eclipse创建Spring项目
|
1月前
|
Java Spring
ij社区版如何创建spring项目
如何在IntelliJ IDEA社区版中创建Spring项目,包括安装Spring Boot Helper插件的步骤和创建过程。
65 1
ij社区版如何创建spring项目
|
1月前
|
Java Apache Maven
Java/Spring项目的包开头为什么是com?
本文介绍了 Maven 项目的初始结构,并详细解释了 Java 包命名惯例中的域名反转规则。通过域名反转(如 `com.example`),可以确保包名的唯一性,避免命名冲突,提高代码的可读性和逻辑分层。文章还讨论了域名反转的好处,包括避免命名冲突、全球唯一性、提高代码可读性和逻辑分层。最后,作者提出了一个关于包名的问题,引发读者思考。
Java/Spring项目的包开头为什么是com?
|
1月前
|
存储 Java API
简单两步,Spring Boot 写死的定时任务也能动态设置:技术干货分享
【10月更文挑战第4天】在Spring Boot开发中,定时任务通常通过@Scheduled注解来实现,这种方式简单直接,但存在一个显著的限制:任务的执行时间或频率在编译时就已经确定,无法在运行时动态调整。然而,在实际工作中,我们往往需要根据业务需求或外部条件的变化来动态调整定时任务的执行计划。本文将分享一个简单两步的解决方案,让你的Spring Boot应用中的定时任务也能动态设置,从而满足更灵活的业务需求。
82 4