Spring Boot 项目设置网站图标的方法

 更新时间:2020年02月07日 11:32:52   作者:程序猿DD  
这篇文章主要介绍了Spring Boot 项目设置网站图标的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

正常情况下,每个网站都会有一个对应的网站图标(Favicon),在浏览器访问网站时,对应的浏览器标签上会出现对应的图标。如下图百度的图标:

对此Spring Boot项目也提供了支持,但不同版本有所区别,在最新版本中的使用,网络上大多数文章已经失效,本篇文章带大家看一下Spring Boot 2.x版本中的使用情况。

Spring Boot不同版本对Favicon的支持

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

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

默认显示效果如下: 

但在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}" rel="external nofollow" rel="external nofollow" type="image/x-icon"/>
 <link rel="bookmark" th:href="@{/favicon.ico}" rel="external nofollow" rel="external nofollow" 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" rel="external nofollow" rel="external nofollow" type="image/x-icon"/>
 <link rel="bookmark" href="/favicon.ico" rel="external nofollow" rel="external nofollow" type="image/x-icon"/>
</head>
<body>
<h1>Hello Favicon!</h1>
</body>
</html>

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

注意事项

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

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

http://localhost:8080/favicon.ico

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

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

总结

以上所述是小编给大家介绍的Spring Boot 项目设置网站图标的方法,希望对大家有帮助!

相关文章

  • Java Springboot的目的你知道吗

    Java Springboot的目的你知道吗

    在本篇文章中小编给大家分析了Java中Spring Boot的优势以及相关知识点内容,兴趣的朋友们可以学习参考下,希望能够给你带来帮助
    2021-09-09
  • SpringBoot应用能直接运行java -jar的原因分析

    SpringBoot应用能直接运行java -jar的原因分析

    这篇文章主要介绍了SpringBoot应用为什么能直接运行java -jar,首先明确一点,普通jar包是不能直接运行的,比如工具类jar,要能运行,至少得要一个main函数作为入口吧?本文给大家介绍了详细的原因分析,需要的朋友可以参考下
    2024-03-03
  • 深入Spring Boot实现对Fat Jar jsp的支持

    深入Spring Boot实现对Fat Jar jsp的支持

    这篇文章主要介绍了深入Spring Boot实现对Fat Jar jsp的支持,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • 一篇文章带你了解MySQL数据库基础

    一篇文章带你了解MySQL数据库基础

    这篇文章主要介绍了MySql数据库基础知识点,总结整理了mysql数据库基本创建、查看、选择、删除以及数据类型相关操作技巧,需要的朋友可以参考下
    2021-08-08
  • 使用Java自定义注解实现一个简单的令牌桶限流器

    使用Java自定义注解实现一个简单的令牌桶限流器

    限流是在分布式系统中常用的一种策略,它可以有效地控制系统的访问流量,保证系统的稳定性和可靠性,在本文中,我将介绍如何使用Java自定义注解来实现一个简单的令牌桶限流器,需要的朋友可以参考下
    2023-10-10
  • Spring事物基础知识及AOP相关陷阱分析

    Spring事物基础知识及AOP相关陷阱分析

    这篇文章主要介绍了Spring事物基础知识及AOP相关陷阱,在平时的实际开发中经常会遇到,只有深入了解了其中的原理,才会在工作中能够有效应对
    2021-09-09
  • SpringBoot中使用JdbcTemplate访问Oracle数据库的案例详解

    SpringBoot中使用JdbcTemplate访问Oracle数据库的案例详解

    JdbcTemplate是Spring框架中的一个核心类,用于简化Java应用程序与关系型数据库的交互操作,本文给大家介绍SpringBoot中使用JdbcTemplate访问Oracle数据库的方法,感兴趣的朋友跟随小编一起看看吧
    2023-10-10
  • IDEA中的.iml文件和.idea文件夹

    IDEA中的.iml文件和.idea文件夹

    这篇文章主要介绍了IDEA中的.iml文件和.idea文件夹,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • eclipse配置tomcat10的详细步骤总结

    eclipse配置tomcat10的详细步骤总结

    今天给大家带来的是关于Java的相关知识,文章围绕着eclipse配置tomcat10的详细步骤展开,文中有非常详细的介绍及图文示例,需要的朋友可以参考下
    2021-06-06
  • Java解决线程的不安全问题之volatile关键字详解

    Java解决线程的不安全问题之volatile关键字详解

    这篇文章主要介绍了Java解决线程的不安全问题之volatile关键字详解,可见性指一个线程对共享变量值的修改,能够及时地被其他线程看到,而 volatile 关键字就保证内存的可见性,需要的朋友可以参考下
    2023-08-08

最新评论