解決Springboot項(xiàng)目中很多頁(yè)面出現(xiàn)Whitelabel Error Page(404)的問題
前言
最近接了一個(gè)前后端一體的項(xiàng)目,發(fā)現(xiàn)其默認(rèn)路徑不是主機(jī)+端口(如:http://localhost:3453/)的形式。很多頁(yè)面的訪問是加了一個(gè)層級(jí)。只要訪問就會(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ì)我這里而言就是訪問不到頁(yè)面,也就是常見的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"); //這里寫入你的頁(yè)面路徑
registry.addErrorPages(errorPages);
}
}
這樣就會(huì)在找不到頁(yè)面的時(shí)候打開你的自定義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)的問題的詳細(xì)內(nèi)容,更多關(guān)于Springboot Whitelabel Error Page(404)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java實(shí)現(xiàn)選擇排序算法的實(shí)例教程
這篇文章主要介紹了Java實(shí)現(xiàn)選擇排序算法的實(shí)例教程,選擇排序的時(shí)間復(fù)雜度為О(n²),需要的朋友可以參考下2016-05-05
Java判斷字符串是否是有效的括號(hào)(實(shí)例詳解)
給定一個(gè)只包括 '(',')','{','}','[',']' 的字符串 s ,判斷字符串是否有效,有效字符串需要滿足:左括號(hào)必須用相同類型的右括號(hào)閉合,這篇文章主要介紹了Java判斷字符串是否是有效的括號(hào),需要的朋友可以參考下2023-10-10
java 中動(dòng)態(tài)代理機(jī)制的實(shí)例講解
這篇文章主要介紹了java 中動(dòng)態(tài)代理機(jī)制的實(shí)例講解的相關(guān)資料,希望通過本文大家能夠理解掌握動(dòng)態(tài)代理機(jī)制,需要的朋友可以參考下2017-09-09
Spring的編程式事務(wù)TransactionTemplate的用法詳解
TransactionTemplate提供了一種在代碼中進(jìn)行編程式事務(wù)管理的方式,使開發(fā)人員能夠在方法級(jí)別定義事務(wù)的開始和結(jié)束點(diǎn),本文介紹了Spring框架中TransactionTemplate的用法,感興趣的朋友跟隨小編一起看看吧2023-07-07
java.lang.OutOfMemoryError 錯(cuò)誤整理及解決辦法
這篇文章主要介紹了java.lang.OutOfMemoryError 錯(cuò)誤整理及解決辦法的相關(guān)資料,需要的朋友可以參考下2016-10-10
SpringBoot中FailureAnalyzer的使用詳解
這篇文章主要介紹了SpringBoot中FailureAnalyzer的使用詳解,FailureAnalyzer攔截啟動(dòng)時(shí)異常,將異常轉(zhuǎn)換成更加易讀的信息并包裝成org.springframework.boot.diagnostics.FailureAnalysis對(duì)象,監(jiān)控應(yīng)用啟動(dòng)過程,需要的朋友可以參考下2023-12-12

