SpringBoot2.x過后static下的靜態(tài)資源無法訪問的問題
SpringBoot2.x過后static下的靜態(tài)資源無法訪問
package com.example.thymeleaf.commons;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* 配置靜態(tài)資源映射
*
* @author sunziwen
* @version 1.0
* @date 2018-11-16 14:57
**/
@Component
public class WebMvcConfig implements WebMvcConfigurer {
/**
* 添加靜態(tài)資源文件,外部可以直接訪問地址
*
* @param registry
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
}
}使用SpringBoot2.x時遇到靜態(tài)資源訪問不到的坑
問題
最近項目當(dāng)中有一個需求就是:下載excel模板。當(dāng)時我笑了,這個簡單!畢竟以前做過這樣的需求,于是乎二話不說直接開碼,做法如下:
坎坷一
因為springboot很方便,直接在static文件下放入我的模板

于是乎我開心的請求了我的路徑:http://localhost:8020/excel/demo.xlsx

什么鬼?。。?和我想象的不~~~~一樣!我們不一樣?
坎坷二
進過一番琢磨,雖然springboot默認設(shè)置了靜態(tài)文件路徑,但是這里我還是想做個配置明確一下我的靜態(tài)文件文件路徑:

配置好了以后,我悄悄的點了以上路徑,結(jié)果?還是不行。
解決
后來我搜索了相關(guān)資料,發(fā)現(xiàn)這個和springBoot的版本有關(guān),2.X以后的版本如果想訪問靜態(tài)資源就不能直接訪問了,需要經(jīng)過一翻配置。
這里分享一個鏈接:http://www.dhdzp.com/article/272426.htm
這里是說明了為什么不能訪問靜態(tài)資源。
好了,這里我是這么解決:
有必要說一下,我以前的項目使用的是springboot 1.4.4.RELEASE,現(xiàn)在使用的是springboot 2.0.6.RELEASE。
在我的項目當(dāng)中我使用了WebMvcConfigurationSupport這個類,所以我做了如下改變:

(ps:配置里面的 srping.mvc.static-path-pattern: /static/** 是可以干掉的)
然后請求:http://localhost:8020/static/excel/demo.xlsx

這里注意哦,需要加上static哦??赐晟厦娣窒淼逆溄游蚁氪蠹揖蜁靼诪槭裁戳?。
版本果然很坑,希望大家以后遇到類似的問題的時候,能夠考慮到這一點哦。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- springboot設(shè)置加載靜態(tài)資源的路徑(spring.resources.static-locations)
- SpringBoot中的static靜態(tài)資源訪問、參數(shù)配置、代碼自定義訪問規(guī)則詳解
- springboot攔截器不攔截靜態(tài)資源,只攔截controller的實現(xiàn)方法
- 關(guān)于SpringBoot攔截器攔截靜態(tài)資源的問題
- springboot應(yīng)用中靜態(tài)資源訪問與接口請求沖突問題解決
- SpringBoot如何訪問html和js等靜態(tài)資源配置
- springboot+thymeleaf打包成jar后找不到靜態(tài)資源的坑及解決
- SpringBoot無法訪問/static下靜態(tài)資源的解決
- SpringBoot靜態(tài)資源及原理解析
相關(guān)文章
如何在mybatis中向BLOB字段批量插入數(shù)據(jù)
這篇文章主要介紹了如何在mybatis中向BLOB字段批量插入數(shù)據(jù)的相關(guān)知識,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2020-10-10
深入解析面向?qū)ο缶幊淘贘ava中的應(yīng)用小結(jié)
本文詳細介紹了面向?qū)ο缶幊痰幕靖拍?包括類和對象、封裝、繼承和多態(tài),通過具體的Java代碼示例,展示了如何在Java中應(yīng)用這些面向?qū)ο缶幊痰暮诵乃枷?感興趣的朋友跟隨小編一起看看吧2025-01-01
手把手教你在eclipse創(chuàng)建第一個java?web項目并運行
Eclipse是用來做開發(fā)的自由集成開發(fā)環(huán)境,這也是很多java程序員會使用的開發(fā)環(huán)境,所以可以使用eclipse創(chuàng)建javaweb項目,下面這篇文章主要給大家介紹了關(guān)于如何在eclipse創(chuàng)建第一個java?web項目并運行的相關(guān)資料,需要的朋友可以參考下2023-02-02
解析ConcurrentHashMap: transfer方法源碼分析(難點)
ConcurrentHashMap是由Segment數(shù)組結(jié)構(gòu)和HashEntry數(shù)組結(jié)構(gòu)組成。Segment的結(jié)構(gòu)和HashMap類似,是一種數(shù)組和鏈表結(jié)構(gòu),今天給大家普及java面試常見問題---ConcurrentHashMap知識,一起看看吧2021-06-06
Java Volatile應(yīng)用單例模式實現(xiàn)過程解析
這篇文章主要介紹了Java Volatile應(yīng)用單例模式實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11

