解決Springboot項(xiàng)目中很多頁(yè)面出現(xiàn)Whitelabel Error Page(404)的問(wèn)題
前言
最近接了一個(gè)前后端一體的項(xiàng)目,發(fā)現(xiàn)其默認(rèn)路徑不是主機(jī)+端口(如:http://localhost:3453/)的形式。很多頁(yè)面的訪問(wèn)是加了一個(gè)層級(jí)。只要訪問(wèn)就會(huì)出現(xiàn)如下提示:
Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. There was an unexpected
error (type=Not Found, status=404). No message available
對(duì)我這里而言就是訪問(wèn)不到頁(yè)面,也就是常見(jiàn)的404錯(cuò)誤。
解決
我的解決思路是在找不到網(wǎng)頁(yè)404時(shí),給出提示,并提供倒計(jì)時(shí)5秒后自動(dòng)跳轉(zhuǎn)至登錄頁(yè)/或者首頁(yè)。
效果如圖:
這就需要將404錯(cuò)誤(HttpStatus.NOT_FOUND)頁(yè)面數(shù)組注冊(cè)到錯(cuò)誤頁(yè)面注冊(cè)器中。首先需要后端的配置類中實(shí)現(xiàn)全局錯(cuò)誤頁(yè)面注冊(cè)類ErrorPageRegistrar:
@Configuration public class ErrorCodePageHandler implements ErrorPageRegistrar { @Override public void registerErrorPages(ErrorPageRegistry registry) { ErrorPage[] errorPages = new ErrorPage[1]; // 404錯(cuò)誤頁(yè)面映射 errorPages[0] = new ErrorPage(HttpStatus.NOT_FOUND, "/404.html"); //這里寫(xiě)入你的頁(yè)面路徑 registry.addErrorPages(errorPages); } }
這樣就會(huì)在找不到頁(yè)面的時(shí)候打開(kāi)你的自定義404頁(yè)面,我個(gè)人測(cè)試的404頁(yè)面如下:
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <title>404 找不到</title> <style> html,body{ width: 100%; height: 100%; } h1{ margin-top: 10%; width: 100%; text-align: center; height: 80px; font-size: 60px; } p { width: 100%; height: 40px; text-align: center; font-size: 30px; } div{ width: 100%; align-content: center; text-align: center; } #tipDiv{ color: #761c19; } a { width: 100%; color: #0066cc; text-align: center; } </style> </head> <body> <h1>哦豁!</h1> <p>你查找的網(wǎng)頁(yè)不存在。</p> <div id="tipDiv"></div> <div> <a id="goBtn">直接跳轉(zhuǎn)</a> </div> <script> var goBtn = document.getElementById('goBtn'); var tipDiv = document.getElementById('tipDiv'); var dreUrl = ""; //這里是你的跳轉(zhuǎn)連接 goBtn.addEventListener('click',function(){ location.href = dreUrl; }); var timer =5; setInterval(function(){ if(timer == 0){ location.href = dreUrl; }else { tipDiv.innerHTML ='您將在'+timer +'秒后自動(dòng)跳轉(zhuǎn)頁(yè)面'; timer--; } },1000); </script> </body> </html>
這個(gè)404頁(yè)面的功能很簡(jiǎn)單,主要就是使用了setInterval進(jìn)行每秒的倒計(jì)時(shí)提示,并在計(jì)時(shí)結(jié)束后自動(dòng)跳轉(zhuǎn)至你指定的頁(yè)面。同時(shí)提供了直接的跳轉(zhuǎn)按鈕。樣式比較粗糙僅供學(xué)習(xí)參考。
以上就是解決Springboot項(xiàng)目中頁(yè)面出現(xiàn)Whitelabel Error Page(404)的問(wèn)題的詳細(xì)內(nèi)容,更多關(guān)于Springboot Whitelabel Error Page(404)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java?HashSet的Removals()方法注意事項(xiàng)
這篇文章主要介紹了Java?HashSet的Removals()方法注意事項(xiàng),文章圍繞制主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-06-06實(shí)戰(zhàn)SpringBoot集成JWT實(shí)現(xiàn)token驗(yàn)證
本文詳細(xì)講解了SpringBoot集成JWT實(shí)現(xiàn)token驗(yàn)證,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12Java動(dòng)態(tài)規(guī)劃之硬幣找零問(wèn)題實(shí)現(xiàn)示例
本文主要介紹了Java動(dòng)態(tài)規(guī)劃之硬幣找零問(wèn)題實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08Maven和MyBatis框架簡(jiǎn)單實(shí)現(xiàn)數(shù)據(jù)庫(kù)交互的示例
本文主要介紹了Maven和MyBatis框架簡(jiǎn)單實(shí)現(xiàn)數(shù)據(jù)庫(kù)交互的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01Springboot使用redisson實(shí)現(xiàn)分布式鎖的代碼示例
在實(shí)際項(xiàng)目中,某些場(chǎng)景下可能需要使用到分布式鎖功能,那么實(shí)現(xiàn)分布式鎖有多種方式,常見(jiàn)的如mysql分布式鎖、zookeeper分布式鎖、redis分布式鎖,本文介紹springboot如何使用redisson實(shí)現(xiàn)分布式鎖,需要的朋友可以參考下2023-06-06