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

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

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

這裏寫圖片描述


HTML代碼截圖瀏覽器

這裏寫圖片描述

路徑正常,能夠經過ctrl+鼠標左鍵直接訪問。markdown


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

百思不得其解。因而各類百度,最終在一篇講解SpringBoot靜態資源訪問的博客中收到了啓發,解決了問題。測試

那篇博客中寫道:atom

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

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

這句「(修改前是/js/sample.js)」給了我啓發,因而我也將個人路徑去掉前面的「/static」,測試,成功!
修改後HTML頁面代碼截圖:
這裏寫圖片描述調試

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


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

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

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

此次出錯的緣由主要在於本身對SpringBoot的靜態資源映射不夠了解。不過,之因此記錄下這個問題,並分享給你們,有兩點緣由:

    1. 是由於在這個錯誤中IntelliJ IDEA起了助紂爲虐的做用,錯誤的路徑它顯示爲正確,而正確的路徑它卻高亮顯示找不到,這個坑可能會誤導不少人。
    2. 是由於SpringMVC中正確的路徑是要加上「/static」的,以前用SpringMVC寫項目時一直這麼用的,存在定勢思惟。  
相關文章
相關標籤/搜索