IntelliJ IDEA+SpringBoot中靜態資源訪問路徑陷阱:靜態資源訪問404


今天在使用SpringBoot時遇到靜態資源無法訪問的問題,百思不得其解,最終解決,記錄下來。

html頁面中訪問static文件夾下的index.css文件失敗,瀏覽器調試模式下發現404。
項目目錄結構如下:

這里寫圖片描述


HTML代碼截圖

這里寫圖片描述

路徑正常,可以通過ctrl+鼠標左鍵直接訪問。


但是當運行應用后,瀏覽器訪問時卻發現無法獲取文件,,F12打開開發者調試工具查看結果如下:
這里寫圖片描述

百思不得其解。於是各種百度,最終在一篇講解SpringBoot靜態資源訪問的博客中收到了啟發,解決了問題。

那篇博客中寫道:

在SpringBoot中,默認配置的/**映射到/static。
靜態資源映射還有一個配置選項,為了簡單這里用.properties方式書寫:

這個配置會影響默認的/**,例如修改為/static/**后,只能映射如/static/js/sample.js這樣的請求(修改前是/js/sample.js)。這個配置只能寫一個值,不像大多數可以配置多個用逗號隔開的。

這句“(修改前是/js/sample.js)”給了我啟發,於是我也將我的路徑去掉前面的“/static”,測試,成功!
修改后HTML頁面代碼截圖:
這里寫圖片描述

注意!這時IDEA高亮顯示,表示IDEA找不到該路徑!


運行結果截圖:
這里寫圖片描述

此時獲取index.css文件成功!並且路徑是”/css/index.css”!

即,解決方案是:去掉路徑前的“/static”!

這次出錯的原因主要在於自己對SpringBoot的靜態資源映射不夠了解。不過,之所以記錄下這個問題,並分享給大家,有兩點原因:

    1. 是因為在這個錯誤中IntelliJ IDEA起了助紂為虐的作用,錯誤的路徑它顯示為正確,而正確的路徑它卻高亮顯示找不到,這個坑可能會誤導很多人。
    2. 是因為SpringMVC中正確的路徑是要加上“/static”的,之前用SpringMVC寫項目時一直這么用的,存在定勢思維。  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM