前言
最近心血來潮,想從一個簡單的系統弄起,然后根據慢慢增加一些自己覺得好玩的功能,不做前后端的分離,就是普通的管理系統,結果卻發現在整合靜態頁面訪問的時候,出現各種靜態資源404的問題,后來發現是spring mvc中為了安全對靜態資源的訪問需要單獨進行配置,這篇博客就總結一下遇到的這個問題
簡單的需求說明
想弄一個簡單的登錄頁面,結果發現各種都弄好了,最后出現的是這個樣子,

各種路徑反復檢查,均沒有發現任何問題,但是各種樣式檔案以及前端js腳本檔案,就回傳個404,
原因分析
由于沒有做前后端分離,因此前端的一些檔案與后端代碼存放在一起,前端檔案結構如下

由于我們在集成freemarker的時候,配置了freemarker的存放路徑,因此針對templates目錄下的HTML檔案可以正常訪問到
## 配置freemarker模板檔案的存放路徑
spring.freemarker.template-loader-path=classpath:/templates/
而針對statics檔案的訪問,始終被spring mvc的請求進行了攔截(簡單猜測spring mvc是出去安全的考慮,還沒學過spring mvc原始碼,這里只能猜測),
解決方法
因此我們如果要解決statics目錄下的檔案無法訪問的問題,就需要告知spring mvc對這個目錄下檔案的訪問不做攔截
1、通過@Configuration的方式注冊資源處理器
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
//注冊靜態資源的處理器,指定statics檔案夾的路徑
registry.addResourceHandler("/statics/**").addResourceLocations("classpath:/statics/");
}
}
最終結果
直接貼圖,可正常訪問的相關樣式檔案和腳本檔案

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/259853.html
標籤:其他
上一篇:智能車AI電磁部署學習 (一)
