Spring Boot 項(xiàng)目設(shè)置網(wǎng)站圖標(biāo)的方法
正常情況下,每個(gè)網(wǎng)站都會(huì)有一個(gè)對(duì)應(yīng)的網(wǎng)站圖標(biāo)(Favicon),在瀏覽器訪問網(wǎng)站時(shí),對(duì)應(yīng)的瀏覽器標(biāo)簽上會(huì)出現(xiàn)對(duì)應(yīng)的圖標(biāo)。如下圖百度的圖標(biāo):
對(duì)此Spring Boot項(xiàng)目也提供了支持,但不同版本有所區(qū)別,在最新版本中的使用,網(wǎng)絡(luò)上大多數(shù)文章已經(jīng)失效,本篇文章帶大家看一下Spring Boot 2.x版本中的使用情況。
Spring Boot不同版本對(duì)Favicon的支持
在早些版本中Spring Boot對(duì)Favicon進(jìn)行了默認(rèn)支持,并且通過如下配置進(jìn)行關(guān)閉操作:
spring.mvc.favicon.enabled=false ## 關(guān)閉
默認(rèn)顯示效果如下:
但在Spring Boot項(xiàng)目的issues中提出,如果提供默認(rèn)的Favicon可能會(huì)導(dǎo)致網(wǎng)站信息泄露。如果用戶不進(jìn)行自定義的Favicon的設(shè)置,而Spring Boot項(xiàng)目會(huì)提供默認(rèn)的上圖圖標(biāo),那么勢(shì)必會(huì)導(dǎo)致泄露網(wǎng)站的開發(fā)框架。
因此,在Spring Boot2.2.x中,將默認(rèn)的favicon.ico移除,同時(shí)也不再提供上述application.properties中的屬性配置。更多詳細(xì)信息可查看對(duì)應(yīng)的issues:https://github.com/spring-projects/spring-boot/issues/17925 。
自定義Favicon
既然在當(dāng)前版本中Spring Boot不支持默認(rèn)的Favicon,我們就來看看如何自定義網(wǎng)站的Favicon。
正常情況下,直接將命名為favicon.ico的網(wǎng)站圖標(biāo)放在resources或static目錄即可顯示,但如果使用的版本無法顯示。
首先排除瀏覽器緩存的問題。在撰寫本文時(shí)多次遇到瀏覽器緩存導(dǎo)致無法展示的情況。一般操作步驟,清除瀏覽器緩存,重啟瀏覽器,即可展示。
同時(shí),如果需要在頁面中通過代碼進(jìn)行引入。下面展示使用Thymeleaf時(shí)的引入方式:
<!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>
上述方式有一個(gè)弊端,那就是需要在每個(gè)展示的頁面中都添加對(duì)應(yīng)的代碼。
注意事項(xiàng)
在使用的過程中,遇到最多的問題其實(shí)就是緩存導(dǎo)致的問題,比如Thymeleaf緩存未關(guān)閉、瀏覽器緩存等。
所以,如果在瀏覽器中打開網(wǎng)頁并沒有展示出效果,并不代表程序沒起效。這時(shí),可采用直接訪問favicoin的形式來驗(yàn)證。
http://localhost:8080/favicon.ico
在瀏覽器訪問上述鏈接,如果能夠展示圖標(biāo),則說明已經(jīng)可以正常訪問了。
另外,在web項(xiàng)目中,如果自定義了Web相關(guān)組件或攔截器也有可能導(dǎo)致無法顯示或404,可對(duì)其進(jìn)行有針對(duì)性的排查。
總結(jié)
以上所述是小編給大家介紹的Spring Boot 項(xiàng)目設(shè)置網(wǎng)站圖標(biāo)的方法,希望對(duì)大家有幫助!
- VsCode搭建Spring Boot項(xiàng)目并進(jìn)行創(chuàng)建、運(yùn)行、調(diào)試
- Springboot項(xiàng)目javax.validation使用方法詳解
- SpringBoot項(xiàng)目application.yml文件數(shù)據(jù)庫配置密碼加密的方法
- 如何運(yùn)行SpringBoot項(xiàng)目的方法
- Springboot項(xiàng)目監(jiān)聽器失效問題解決
- 超個(gè)性修改SpringBoot項(xiàng)目的啟動(dòng)banner的方法
- SpringBoot項(xiàng)目中處理返回json的null值(springboot項(xiàng)目為例)
- 基于SpringBoot構(gòu)建電商秒殺項(xiàng)目代碼實(shí)例
相關(guān)文章
SpringBoot應(yīng)用能直接運(yùn)行java -jar的原因分析
這篇文章主要介紹了SpringBoot應(yīng)用為什么能直接運(yùn)行java -jar,首先明確一點(diǎn),普通jar包是不能直接運(yùn)行的,比如工具類jar,要能運(yùn)行,至少得要一個(gè)main函數(shù)作為入口吧?本文給大家介紹了詳細(xì)的原因分析,需要的朋友可以參考下2024-03-03深入Spring Boot實(shí)現(xiàn)對(duì)Fat Jar jsp的支持
這篇文章主要介紹了深入Spring Boot實(shí)現(xiàn)對(duì)Fat Jar jsp的支持,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-06-06一篇文章帶你了解MySQL數(shù)據(jù)庫基礎(chǔ)
這篇文章主要介紹了MySql數(shù)據(jù)庫基礎(chǔ)知識(shí)點(diǎn),總結(jié)整理了mysql數(shù)據(jù)庫基本創(chuàng)建、查看、選擇、刪除以及數(shù)據(jù)類型相關(guān)操作技巧,需要的朋友可以參考下2021-08-08使用Java自定義注解實(shí)現(xiàn)一個(gè)簡(jiǎn)單的令牌桶限流器
限流是在分布式系統(tǒng)中常用的一種策略,它可以有效地控制系統(tǒng)的訪問流量,保證系統(tǒng)的穩(wěn)定性和可靠性,在本文中,我將介紹如何使用Java自定義注解來實(shí)現(xiàn)一個(gè)簡(jiǎn)單的令牌桶限流器,需要的朋友可以參考下2023-10-10Spring事物基礎(chǔ)知識(shí)及AOP相關(guān)陷阱分析
這篇文章主要介紹了Spring事物基礎(chǔ)知識(shí)及AOP相關(guān)陷阱,在平時(shí)的實(shí)際開發(fā)中經(jīng)常會(huì)遇到,只有深入了解了其中的原理,才會(huì)在工作中能夠有效應(yīng)對(duì)2021-09-09SpringBoot中使用JdbcTemplate訪問Oracle數(shù)據(jù)庫的案例詳解
JdbcTemplate是Spring框架中的一個(gè)核心類,用于簡(jiǎn)化Java應(yīng)用程序與關(guān)系型數(shù)據(jù)庫的交互操作,本文給大家介紹SpringBoot中使用JdbcTemplate訪問Oracle數(shù)據(jù)庫的方法,感興趣的朋友跟隨小編一起看看吧2023-10-10eclipse配置tomcat10的詳細(xì)步驟總結(jié)
今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識(shí),文章圍繞著eclipse配置tomcat10的詳細(xì)步驟展開,文中有非常詳細(xì)的介紹及圖文示例,需要的朋友可以參考下2021-06-06Java解決線程的不安全問題之volatile關(guān)鍵字詳解
這篇文章主要介紹了Java解決線程的不安全問題之volatile關(guān)鍵字詳解,可見性指一個(gè)線程對(duì)共享變量值的修改,能夠及時(shí)地被其他線程看到,而 volatile 關(guān)鍵字就保證內(nèi)存的可見性,需要的朋友可以參考下2023-08-08