1. 程式人生 > >IntelliJ IDEA+SpringBoot中靜態資源訪問路徑陷阱:靜態資源訪問404

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

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

問題描述

html頁面中訪問static資料夾下的index.css檔案失敗,瀏覽器除錯模式下發現404。 專案目錄結構如下:

這裡寫圖片描述

HTML程式碼截圖

這裡寫圖片描述

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

但是當執行應用後,瀏覽器訪問時卻發現無法獲取檔案,,F12開啟開發者除錯工具檢視結果如下:這裡寫圖片描述

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

解決方案

那篇部落格中寫道:

在SpringBoot中,預設配置的/**對映到/static。 靜態資源對映還有一個配置選項,為了簡單這裡用.properties方式書寫:spring.mvc.static-path-pattern=/** # Path pattern used for static resources.

這個配置會影響預設的/**,例如修改為/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寫專案時一直這麼用的,存在定勢思維。

--------------------- 本文來自 Star_Ship 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/zhoucheng05_13/article/details/78197766?utm_source=copy