Spring Boot 項目設置網(wǎng)站圖標的方法
正常情況下,每個網(wǎng)站都會有一個對應的網(wǎng)站圖標(Favicon),在瀏覽器訪問網(wǎng)站時,對應的瀏覽器標簽上會出現(xiàn)對應的圖標。如下圖百度的圖標:

對此Spring Boot項目也提供了支持,但不同版本有所區(qū)別,在最新版本中的使用,網(wǎng)絡上大多數(shù)文章已經(jīng)失效,本篇文章帶大家看一下Spring Boot 2.x版本中的使用情況。
Spring Boot不同版本對Favicon的支持
在早些版本中Spring Boot對Favicon進行了默認支持,并且通過如下配置進行關閉操作:
spring.mvc.favicon.enabled=false ## 關閉
默認顯示效果如下:

但在Spring Boot項目的issues中提出,如果提供默認的Favicon可能會導致網(wǎng)站信息泄露。如果用戶不進行自定義的Favicon的設置,而Spring Boot項目會提供默認的上圖圖標,那么勢必會導致泄露網(wǎng)站的開發(fā)框架。
因此,在Spring Boot2.2.x中,將默認的favicon.ico移除,同時也不再提供上述application.properties中的屬性配置。更多詳細信息可查看對應的issues:https://github.com/spring-projects/spring-boot/issues/17925 。
自定義Favicon
既然在當前版本中Spring Boot不支持默認的Favicon,我們就來看看如何自定義網(wǎng)站的Favicon。
正常情況下,直接將命名為favicon.ico的網(wǎng)站圖標放在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緩存未關閉、瀏覽器緩存等。
所以,如果在瀏覽器中打開網(wǎng)頁并沒有展示出效果,并不代表程序沒起效。這時,可采用直接訪問favicoin的形式來驗證。
http://localhost:8080/favicon.ico
在瀏覽器訪問上述鏈接,如果能夠展示圖標,則說明已經(jīng)可以正常訪問了。
另外,在web項目中,如果自定義了Web相關組件或攔截器也有可能導致無法顯示或404,可對其進行有針對性的排查。
總結(jié)
以上所述是小編給大家介紹的Spring Boot 項目設置網(wǎng)站圖標的方法,希望對大家有幫助!
相關文章
springboot 自定義異常并捕獲異常返給前端的實現(xiàn)代碼
在開發(fā)中,如果用try catch的方式,每個方法都需要單獨實現(xiàn),為了方便分類異常,返回給前端,采用了@ControllerAdvice注解和繼承了RuntimeException的方式來實現(xiàn),具體實現(xiàn)內(nèi)容跟隨小編一起看看吧2021-11-11
SpringBoot WebSocket實時監(jiān)控異常的詳細流程
最近做了一個需求,消防的設備巡檢,如果巡檢發(fā)現(xiàn)異常,通過手機端提交,后臺的實時監(jiān)控頁面實時獲取到該設備的信息及位置,然后安排員工去處理。這篇文章主要介紹了SpringBoot WebSocket實時監(jiān)控異常的全過程,感興趣的朋友一起看看吧2021-10-10
SpringSecurity中內(nèi)置過濾器的使用小結(jié)
SpringSecurity通過其復雜的過濾器鏈機制,為Java應用提供了全面的安全防護,本文主要介紹了SpringSecurity中內(nèi)置過濾器的使用小結(jié),感性的可以了解一下2025-03-03

