springmvc引入資源路徑血案

最近讀了下《Spring In Action》,根據上邊配置了下簡單的springmvc環境,不過是純註解的,web.xml沒有任何配置。只是打開頁面時,發現頁面顯示總是有問題,一直以爲是springmvc配置問題,網上找了幾篇文章,自己來來回回改了幾次代碼都沒有解決,最終發現罪魁禍首是html頁面引入資源路徑問題,之前對於路徑這塊總是模模糊糊的,經此血案,也不知道是清楚了一點,還是更暈了。
我的感覺就是:首頁面路徑要是webapp文件下的路徑開頭,如下圖,以src或者favicon.ico開頭,前邊沒有"/"
加載過項目框架之後,下邊應該就可以使用…/…/這種開頭的相對路徑了吧(這一句待隨後驗證)。

分析準備

項目路徑:
在這裏插入圖片描述
打包後路徑:

如上圖所示:main目錄下的java、resources目錄打包後都位於webapps–》WEB_INF–>classes目錄下,而webapp下邊的src存放的是項目相關的靜態資源,如js、css、html等。
和本次分析相關的html、js等文件詳細路徑如下:
在這裏插入圖片描述

相對路徑報錯

最初,直接使用… /這種相對路徑來引入js文件
在這裏插入圖片描述
不啓動項目,直接用瀏覽器打開html頁面,顯示正常;
打包後,localhost:8080/eastValley/訪問,html頁面可以打開,但是js、css訪問的路徑(以jquery爲例)是:
http://www.localhost:8080/src/js/common/jquery-3.4.1.min.js,報404錯誤,導致頁面樣式錯誤。正確路徑應爲:http://www.localhost:8080/eastValley/src/js/common/jquery-3.4.1.min.js,路徑少了項目名稱。
報錯見下圖:
在這裏插入圖片描述

絕對路徑報錯

在這裏插入圖片描述
改成絕對路徑:
本地啓動項目,正常
發佈的服務器後,通過ip:port訪問,正常
通過域名:port訪問,首頁面可以打開,js、css訪問的路徑錯誤,但是這次是路徑少了端口號,還是無法正確加載。
報錯如下:
在這裏插入圖片描述

正確的路徑

在這裏插入圖片描述
這樣,瀏覽器直接打開html頁面報錯,但是ip訪問、域名訪問,均可以正常顯示了。

附上nginx配置

通過如下配置,就可以通過直接訪問:www.eastlegend.cn來自動跳轉首頁,而不用加上端口號及項目路徑等。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章