解決Springboot項目中很多頁面出現(xiàn)Whitelabel Error Page(404)的問題
前言
最近接了一個前后端一體的項目,發(fā)現(xiàn)其默認(rèn)路徑不是主機+端口(如:http://localhost:3453/)的形式。很多頁面的訪問是加了一個層級。只要訪問就會出現(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
對我這里而言就是訪問不到頁面,也就是常見的404錯誤。
解決
我的解決思路是在找不到網(wǎng)頁404時,給出提示,并提供倒計時5秒后自動跳轉(zhuǎn)至登錄頁/或者首頁。
效果如圖:

這就需要將404錯誤(HttpStatus.NOT_FOUND)頁面數(shù)組注冊到錯誤頁面注冊器中。首先需要后端的配置類中實現(xiàn)全局錯誤頁面注冊類ErrorPageRegistrar:
@Configuration
public class ErrorCodePageHandler implements ErrorPageRegistrar {
@Override
public void registerErrorPages(ErrorPageRegistry registry) {
ErrorPage[] errorPages = new ErrorPage[1];
// 404錯誤頁面映射
errorPages[0] = new ErrorPage(HttpStatus.NOT_FOUND, "/404.html"); //這里寫入你的頁面路徑
registry.addErrorPages(errorPages);
}
}
這樣就會在找不到頁面的時候打開你的自定義404頁面,我個人測試的404頁面如下:
<!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)頁不存在。</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 +'秒后自動跳轉(zhuǎn)頁面';
timer--;
}
},1000);
</script>
</body>
</html>
這個404頁面的功能很簡單,主要就是使用了setInterval進(jìn)行每秒的倒計時提示,并在計時結(jié)束后自動跳轉(zhuǎn)至你指定的頁面。同時提供了直接的跳轉(zhuǎn)按鈕。樣式比較粗糙僅供學(xué)習(xí)參考。
以上就是解決Springboot項目中頁面出現(xiàn)Whitelabel Error Page(404)的問題的詳細(xì)內(nèi)容,更多關(guān)于Springboot Whitelabel Error Page(404)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
實戰(zhàn)SpringBoot集成JWT實現(xiàn)token驗證
本文詳細(xì)講解了SpringBoot集成JWT實現(xiàn)token驗證,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-12-12
Java動態(tài)規(guī)劃之硬幣找零問題實現(xiàn)示例
本文主要介紹了Java動態(tài)規(guī)劃之硬幣找零問題實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
Maven和MyBatis框架簡單實現(xiàn)數(shù)據(jù)庫交互的示例
本文主要介紹了Maven和MyBatis框架簡單實現(xiàn)數(shù)據(jù)庫交互的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01
Springboot使用redisson實現(xiàn)分布式鎖的代碼示例
在實際項目中,某些場景下可能需要使用到分布式鎖功能,那么實現(xiàn)分布式鎖有多種方式,常見的如mysql分布式鎖、zookeeper分布式鎖、redis分布式鎖,本文介紹springboot如何使用redisson實現(xiàn)分布式鎖,需要的朋友可以參考下2023-06-06

