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

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

配置好了以后,我悄悄的點了以上路徑,結(jié)果?還是不行。
解決
后來我搜索了相關(guān)資料,發(fā)現(xiàn)這個和springBoot的版本有關(guān),2.X以后的版本如果想訪問靜態(tài)資源就不能直接訪問了,需要經(jīng)過一翻配置。
這里分享一個鏈接:http://www.dbjr.com.cn/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)文章
Java 為什么要避免使用finalizer和Cleaner
這篇文章主要介紹了Java 為什么要避免使用finalizer和Cleaner,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下2021-03-03
Java?Ribbon與openfeign區(qū)別和用法講解
Ribbon是基于Netflix?Ribbon實現(xiàn)的一套客戶端負(fù)載均衡的工具,主要功能是提供客戶端的軟件負(fù)載均衡算法和服務(wù)調(diào)用。openfeign對Feign進(jìn)行了增強(qiáng),使其支持Spring MVC注解,另外還整合了Ribbon和Nacos,從而使得Feign的使用更加方便2022-08-08
Fluent Mybatis實現(xiàn)環(huán)境隔離和租戶隔離
我們在實際的業(yè)務(wù)開發(fā)中,經(jīng)常會碰到環(huán)境邏輯隔離和租戶數(shù)據(jù)邏輯隔離的問題。本文就詳細(xì)的來介紹一下,感興趣的小伙伴們可以參考一下2021-08-08
Java編程實現(xiàn)多線程TCP服務(wù)器完整實例
這篇文章主要介紹了Java編程實現(xiàn)多線程TCP服務(wù)器完整實例,具有一定借鑒價值,需要的朋友可以參考下2018-01-01
java原裝代碼完成pdf在線預(yù)覽和pdf打印及下載
本文主要介紹了java原裝代碼完成pdf在線預(yù)覽和pdf打印及下載的方法,具有一定的參考價值,下面跟著小編一起來看下吧2017-02-02
Java刷題之最小k個數(shù)的思路及具體實現(xiàn)
這篇文章主要介紹了Java刷題之最小k個數(shù)的思路及具體實現(xiàn),最小K個數(shù)是一個經(jīng)典的top-K問題,可以通過整體排序、建立小根堆或大根堆的方式解決,排序方式時間復(fù)雜度較高,適合數(shù)據(jù)量小的場景,小根堆適合k較小的情況,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-10-10

