springboot整合Thymeleaf web開發出現Whitelabel Error Page

背景

在做java端上應用開發的時候,從資源和部署操作成本兩方面考慮,一般會將前端的靜態資源直接與后端應用一起打包,通過springboot內嵌的Tomcat提供web服務。進入web首頁登錄一直到后續業務流程正向操作,頁面都能正常加載靜態資源,但觸發頁面刷新操作的時候,就出現了Whitelabel Error Page,訪問不成功。本文針對此問題做解答。

1. springboot web項目搭建開發

在pom文件中增加thymeleaf依賴

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

配置靜態資源處理器:

public class BaseWebConfig implements WebMvcConfigurer {private LoginInterceptor loginInterceptor;private PermissionInterceptor permissionInterceptor;public List<String> whiteUrl = new ArrayList<>(Arrays.asList("/login","/doLogin","/css/**", // 排除css目錄下的所有資源"/js/**",  // 排除js目錄下的所有資源"/images/**", // 排除images目錄下的所有資源"/favicon.ico", // 排除favicon.ico"/static/**" // 排除static目錄下的所有資源));// 登錄攔截器,后端所有的接口都是api/開頭@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(loginInterceptor).addPathPatterns("/api/**").excludePathPatterns(whiteUrl).order(1);}// 靜態資源放到html目錄下@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/**").addResourceLocations("classpath:/html/");}// 默認進入登錄頁@Overridepublic void addViewControllers(ViewControllerRegistry registry) {registry.addViewController("/").setViewName("forward:/index.html");}
}

?配置啟動thymeleaf

spring.thymeleaf.prefix=classpath:/html/
spring.thymeleaf.suffix=.html
spring.thymeleaf.cache=false

靜態文件結構:

|-- src
| ? |--main
| ? | ? |-- resources
| ? | ? |-- application.properties

| ? | ? |? ?|-- html

| ? | ? |? ?|? ?|-- index.html

| ? | ? |? ?|? ?|-- app.js

...

2. 問題暴露

訪問后端localhost:8080/login,正常跳轉到登錄頁。登錄成功后,瀏覽器中的地址因為前端自動的路由規則,變成了

localhost:8080/edge?ownerId=jcknuxh&tab=sub1-data-management

看網絡請求也都正常

?

在瀏覽器頁面刷新,直接進入Whitelabel Error Page

查看很多網上的教程,有建議直接攔截所有的請求,轉發到index.html視圖,如下代碼:

@Controller
public class IndexController{@GetMapping("{/path})public String index(@PathVariable String path){return "forward:/index.html";}}

然后就出現了錯誤:

circular view path?

3. 問題解決

解題的思路是參照NGINX加載靜態頁面,當有不識別的頁面的時候,直接跳轉到index.html頁面。Nginx中的配置如下:

server {listen 80;server_name localhost;root /usr/share/nginx/html;index index.html;location / {try_files $uri $uri/ /index.html;}}

?在springboot中怎么配置呢?

 // 默認進入登錄頁@Overridepublic void addViewControllers(ViewControllerRegistry registry) {registry.addViewController("/{path;[^\\.]*}").setViewName("forward:/index.html");}

問題就解決了。原理是當遇到不識別的頁面的時候,就跳轉到首頁,首頁有對應的js、css請求路由,從而在刷新頁面的時候,正常渲染。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/74212.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/74212.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/74212.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JavaScript元素尺寸與位置

目錄 client 家族與 offset 家族 一、client 家族&#xff1a;內容區域 內邊距 示例代碼 應用場景 二、offset 家族&#xff1a;內容區域 內邊距 邊框 滾動條 示例代碼 應用場景 三、綜合應用場景 1. 動態調整元素高度 2. 拖拽元素 3. 判斷元素是否在視口內 四…

GZ073網絡系統管理賽項賽題第1套模塊A:網絡構建解題筆記

2. 設備 接口或VLAN VLAN名稱 二層或三層規劃 說明 S1 VLAN10 CAIWU Gi0/1至Gi0/4 財務部 VLAN20 XIAOSHOU Gi0/5至Gi0/8 銷售部 VLAN30 YANFA Gi0/9至Gi0/12 研發部 VLAN40 SHICHANG Gi0/13至Gi0/16 市場部 VLAN50 AP Gi0/20至Gi0/21 無線AP管理 VL…

jmeter web壓力測試 壓測

下載地址 Apache JMeter - Download Apache JMeter 1. 設置線程組 2. 設置http請求頭 3. 設置http請求體 4. 設置結果條目 常用函數 ${__RandomString(8, abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789)}${__javaScript( ${__Random(1000, 10000)} /…

大語言模型(LLM)應用開篇 | RAG方法論概述 | 構建知識庫探索

大型語言模型應用開篇 | RAG技術 | 構建知識庫探索 1、大語言模型&#xff08;LLM&#xff09;應用開篇2、RAG技術2.1 基于RAG實現知識庫問答系統的基本步驟2.2 RAG與其他技術的關系與區別 1、大語言模型&#xff08;LLM&#xff09;應用開篇 現在是2025年&#xff0c;DeepSeek…

fbx bip互轉 測試OK

目錄 fbx bip互轉 3dmax插件fbx轉bip: 測試可以轉: MotionBuilder fbx轉bip fbx bip互轉 3dmax插件fbx轉bip: 測試可以轉: 不用插件!!無腦把Mxiamo轉bip骨骼動畫 - CG軟件插件腳本交流 - Powered by Discuz!

8個實用銷售工具

CRM系統&#xff08;客戶關系管理系統&#xff09; 特點&#xff1a;能集中管理客戶信息&#xff0c;如聯系方式、交易記錄、偏好等&#xff0c;還可對銷售流程進行自動化管理。 用途&#xff1a;幫助銷售團隊跟蹤客戶&#xff0c;分析客戶行為&#xff0c;預測銷售趨勢&am…

【家政平臺開發(6)】筑牢家政平臺安全防線:全方位隱私與安全需求解析

本【家政平臺開發】專欄聚焦家政平臺從 0 到 1 的全流程打造。從前期需求分析&#xff0c;剖析家政行業現狀、挖掘用戶需求與梳理功能要點&#xff0c;到系統設計階段的架構選型、數據庫構建&#xff0c;再到開發階段各模塊逐一實現。涵蓋移動與 PC 端設計、接口開發及性能優化…

IP 地址規劃中的子網劃分:/18 網絡容納 64 個 C 段(/24)的原理與應用解析

整體表格說明 這是某市教育城域網中某縣教育相關機構的IP地址規劃表&#xff0c;明確了某縣一中和某縣教育局的IP地址范圍&#xff0c;包括終端使用地址段、業務互訪地址段。 概念解析 64個C段終端及互聯地址 C段地址&#xff1a;一個C段是IP地址中的一個/24網絡&#xff08;…

python生成并繪制各種類型聲音噪聲

python生成并繪制各種類型聲音噪聲 1、效果 白噪聲: 工業設備振動噪聲: 2、噪聲類型 主要噪聲類型有: 白噪聲:全頻段能量均勻分布 直接生成高斯分布隨機數粉紅噪聲:能量隨頻率增加按1/f衰減(適合聲學測試) 使用IIR濾波器對白噪聲進行濾波處理布朗噪聲:能量隨頻率增加…

軟考-數據庫系統工程師第四版pdf

軟考-數據庫系統工程師第四版pdf git中的文件相對沒有那么清楚&#xff0c;網盤的有高清版 github下載 這里我給出倉庫地址 鏈接: https://github.com/yaodada123/ruankao-pdf https://github.com/yaodada123/ruankao-pdf gitee下載 https://gitee.com/yao-hengchao/ruank…

Linux(24)——系統調優

目錄 一、tuned 軟件包&#xff1a; 1、安裝并啟用 tuned &#xff1a; 2、驗證 tuned 軟件包&#xff1a; &#xff08;1&#xff09;是否安裝&#xff1a; &#xff08;2&#xff09;是否啟用&#xff1a; &#xff08;3&#xff09;是否正在運行&#xff1a; 二、系統…

文件系統--軟硬鏈接/動靜態庫

inode 是文件系統中的一個重要概念&#xff0c;用于存儲文件的元數據。 inode 的結構和內容 文件權限&#xff1a;定義了文件所有者、所屬組以及其他用戶對文件的讀、寫、執行權限。文件所有者和所屬組&#xff1a;記錄了文件的所有者和所屬的用戶組信息。文件大小&#xff1…

WebSocket原理詳解(二)

WebSocket原理詳解(一)-CSDN博客 目錄 1.WebSocket協議的幀數據詳解 1.1.幀結構 1.2.生成數據幀 2.WebSocket協議控制幀結構詳解 2.1.關閉幀 2.2.ping幀 2.3.pong幀 3.WebSocket心跳機制 1.WebSocket協議的幀數據詳解 1.1.幀結構 WebSocket客戶端與服務器通信的最小單…

MySQL 進階 面經級

會用數據庫&#xff0c;找大廠工作是遠遠不夠的。 本人2025美團暑期AI面試好幾個MySQL場景問題不會答&#xff0c;已臟面評。遂在此整理學習&#xff01; 文章目錄 美團AI面1.數據庫分片sharding的概念&#xff0c;它有什么優勢和挑戰?優勢Sharding 挑戰 2. 分庫分表的常見策…

基于單片機的智能奶茶機(論文 +源碼)

1總體架構設計 本課題為基于單片機的智能奶茶機設計&#xff0c;其系統架構上設計如圖2.1所示&#xff0c;整個系統包括了DS18B20溫度傳感器、繼電器模塊、LCD液晶、蜂鳴器、按鍵、STC89C52單片機等器件&#xff0c;在功能上用戶可以通過按鍵鍵控制選擇甜度和添加物以及設置溫度…

Hue:一個大數據查詢工具

Hue&#xff08;Hadoop User Experience&#xff09;是一個用于大數據平臺、數據庫以及數據倉庫查詢的開源工具&#xff0c;旨在通過 Web 界面簡化用戶與 Hadoop 生態系統以及各種數據存儲的交互。 Hue 支持的數據源包括數據庫&#xff08;Apache Hive、Apache Impala、MySQL、…

并發多線程八股

并發多線程 1.Java里面的線程和操作系統的線程一樣嗎&#xff1f;2.Java的線程安全在三個方面體現&#xff1a;3.保證數據一致性的方案4.線程創建的方式1&#xff09;Thread類2&#xff09;Runnable接口3&#xff09;Callable接口和FutureTask4&#xff09;線程池&#xff08;e…

VBA數據庫解決方案第二十講:SQL在VBA中幾種常見的表達方式

《VBA數據庫解決方案》教程&#xff08;版權10090845&#xff09;是我推出的第二套教程&#xff0c;目前已經是第二版修訂了。這套教程定位于中級&#xff0c;是學完字典后的另一個專題講解。數據庫是數據處理的利器&#xff0c;教程中詳細介紹了利用ADO連接ACCDB和EXCEL的方法…

大語言模型智體的綜述:方法論、應用和挑戰(下)

25年3月來自北京大學、UIC、廣東大亞灣大學、中科院計算機網絡信息中心、新加坡南陽理工、UCLA、西雅圖華盛頓大學、北京外經貿大學、喬治亞理工和騰訊優圖的論文“Large Language Model Agent: A Survey on Methodology, Applications and Challenges”。 智體時代已經到來&a…

《STL 六大組件之容器篇:簡單了解 list》

目錄 一、list 簡介二、list 的常用接口1. 構造函數&#xff08;constructor &#xff09;2. 迭代器&#xff08;iterator&#xff09;3. 容量、修改和訪問&#xff08;capacity 、modify and access&#xff09; 一、list 簡介 簡單來說&#xff0c;list 就是數據結構初階中學…