spring boot上传图片后无法马上显示,需要重启服务器

1.bug再现


做完图片上传之后,上传图片发现页面不能立刻显示,本以为图片没有上传成功,但当我在文件夹和数据库都没发现异常,然后我便重启了服务器,再次访问发现竟然可以了。不重启它就不能显示,很奇怪。

2.bug原因


通过百度,在大佬博客里找到了答案。这是因为对服务器的保护措施导致的,服务器不能对外部暴露真实的资源路径,需要配置虚拟路径映射访问。

3.bug再见


重新创建一个类,这个类表示添加一个静态资源文件夹,路径是D盘的IJavaProject文件夹,所有上传到该路径的静态文件,都可以通过 /upload/"+图片名 的方式来访问。这样就不需要重新部署项目,上传成功后图片就可以显示了。这个类我是建在util包中的。

package com.arpa.springboot.util;

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 UploadConfig extends WebMvcConfigurerAdapter {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
//映射图片保存地址
        registry.addResourceHandler("/upload/**").addResourceLocations("file:D:\\JavaProject\\springboot\\src\\main\\resources\\static\\upload\\");
    }
}

addResourceHandler()里配置需要映射的文件夹,此处代表映射文件夹user下的所有资源。
addResourceLocations()配置文件夹在系统中的路径,使用绝对路径,格式为“file:你的路径”
借鉴了一部分,附上链接

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值