点击上方蓝色“程序猿DD”,选择“设为星标”

回复“资源”获取独家整理的学习资料!

作者 | 二师兄

来源 | 公众号「程序新视界」

正常情况下,每个网站都会有一个对应的网站图标(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}" 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,可对其进行有针对性的排查。

  • Spring Boot 2.x 默认数据源Hikari的配置详解

  • IntelliJ IDEA 2020.1 EAP2 发布:禅模式和 LightEdit 模式

  • Spring Boot 2.x:JdbcTemplate访问MySQL数据库

  • 在家办公的第一天,钉钉、企业微信集体“崩溃”...

  • Spring Cloud Greenwich 最后一个计划版本发布!

武汉加油!中国加油! 

Spring Boot 项目设置网站图标相关推荐

  1. Spring Boot项目设置权限拦截器和过滤器

    参考博文:https://blog.csdn.net/qq_30745307/article/details/80974407 目录 过滤器 Filter 作用 生命周期 示例代码 拦截器 Inter ...

  2. 在vue项目中设置网站图标

    怎么在我们的Vue项目中设置自定义的网站图标: 首先我们需要先制作个ico图标,大小为32*32的,放到static文件夹下,附制作网站,我们把制作好的ico图片改名为:favicon.ico(注:必 ...

  3. 电商生鲜网站开发(一)——Spring Boot项目开发准备

    本系列内容完成Spring Boot框架的电商生鲜网站开发的完整案例,前后端分离开发的案例,先开发后端接口后开发前端,最后部署等待. Spring Boot项目开发准备 文章目录 Spring Boo ...

  4. vue项目中设置网站图标

    怎么在vue项目中设置网站图标: 1,先下载个icon图标,favicon.ico,大小为32*32的,放到static文件夹下: static文件是vue项目中用来存放静态资源的文件夹,放到这里的文 ...

  5. IDEA创建第一个Spring Boot项目

    Spring Boot官方参考指南 Spring Boot慨念请自行百度查找,这里就不多说了 一. 创建项目 File -> New -> Project 选择 Spring Initia ...

  6. eclipse创建springboot项目_Spring Initializer+IntelliJ IDEA创建Spring Boot项目(图文)

    在本文中,将介绍如何使用Spring Initializer快速创建一个简单的Spring Boot项目.Spring Initializer是由Spring团队开发的一个优秀工具,通过使用它,你可以 ...

  7. java servlet 部署到tomcat_如何把spring boot项目部署到tomcat容器中

    把spring-boot项目按照平常的web项目一样发布到tomcat容器下 一.修改打包形式 在pom.xml里设置 war 二.移除嵌入式tomcat插件 在pom.xml里找到spring-bo ...

  8. apache目录 vscode_VsCode搭建Java开发环境(Spring Boot项目创建、运行、调试)

    VsCode搭建Java开发环境(Spring Boot项目创建.运行.调试) 安装如下两个主要扩展即可,这两个扩展已关联java项目开发主要使用的maven.springboot等所需要的扩展. 开 ...

  9. 《SpringCloud超级入门》Spring Boot项目搭建步骤(超详细)《六》

    目录 编写第一个 REST 接口 读取配置文件 profiles 多环境配置 热部署 actuator 监控 自定义 actuator 端点 统一异常处理 异步执行 随机端口 编译打包 在 Sprin ...

最新文章

  1. 教程分享-Vim编辑器用法
  2. Spring Boot 关于 @Import注解 —— 导入资源
  3. NET工程师求职面试必杀技
  4. Ollivander's Inventory(连接查询、单表双实例、子查询)
  5. 笔记 - AliCloud 云数据库 简介
  6. java list pair_JavaList
  7. 江民杀毒软件KV网络版反病毒整体解决方案──金融行业
  8. jenkins安装 新建节点(5)
  9. java使用token防止用户重复登录以及验证用户登录
  10. ppk on javascript 笔记(六)--BOM
  11. 2020年全球亿万富豪的财富增加了1.9万亿美元
  12. 严重漏洞已存在16年,数亿台打印机受影响
  13. 极限学习机︱R语言快速深度学习进行回归预测
  14. oracle考试试题及其答案,oracle考试试题及答案
  15. 极路由3C【C103B】刷breed再刷老毛子教程
  16. 关于Sentaurus的日常(二)(Carrier Transport Models)
  17. ORB-SLAM2安装以及遇到问题
  18. 已经有了阿里云OSS还需要开通CDN吗?
  19. android zip格式的ndk,Android 使用NDK (JNI)容易解压7z压缩文件
  20. JS逆向hook通用脚本合集

热门文章

  1. linux c 调试 strace 诊断 调试程序 异常退出 崩溃
  2. python3 网络编程 主机字节序 网络字节序 相互转换
  3. python3 import 和__import__() 的区别
  4. golang []byte 和 int 互转
  5. linux tar打包压缩排除某个目录或文件
  6. Telnet协议详解
  7. Android中的各种Adapter
  8. linux使用vim浏览python源码
  9. java beans 组件_如何利用JavaBeans在应用程序中创建组件?
  10. linux spec 脚本,关于linux:shell脚本的单元测试