SpringBoot文件虛擬路徑配置:Not allowed to load local resource

參考

1.https://blog.csdn.net/qq_39159076/article/details/100139260

2.https://blog.csdn.net/weixin_42590334/article/details/96473822

3.https://www.cnblogs.com/zhainan-blog/p/11169163.html

4.https://segmentfault.com/q/1010000019415247

5.https://www.cnblogs.com/zhainan-blog/p/11169163.html(參考)

一、問題點

SpringBoot文件虛擬路徑配置

瀏覽器不允許直接請求本地文件
當你前端的img video或者別的標籤scr屬性類似 src=“E:/video/74af2a01ab2d43539cb815bef4342bb6.mp4”
這樣直接請求本地文件時,
前端多半會出現提示:
Not allowed to load local resource: file:///…

二、解決辦法

解決辦法也很簡單,首先需要配置虛擬路徑,
在你的Springboot項目中新增一個類,代碼如下,
然後,前端請求變成:
src="/video/view/74af2a01ab2d43539cb815bef4342bb6.mp4"
(後端文件上傳的路徑依舊是本地路徑)

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

/**
 * 圖片絕對地址與虛擬地址映射
 */

@Configuration
public class URLConfig extends WebMvcConfigurerAdapter {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        //文件磁盤圖片url 映射
        //配置server虛擬路徑,handler爲前臺訪問的目錄,locations爲files相對應的本地路徑
        registry.addResourceHandler("/pic/view/**").addResourceLocations("file:///E:/pic/");
        registry.addResourceHandler("/video/view/**").addResourceLocations("file:///E:/video/");
        super.addResourceHandlers(registry);
    }
}

      其實這也是springMVC中的基本配置的靜態資源映射,其中addResourceHandler指的是對外暴露的路徑,而addResourceLocations是文件真正放的位置,如:你在src/main/resources下建立assets/js目錄可以這樣寫:

registry.addResourceHandler("/Path/**").addResourceLocations("classpath:/assets");
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章