SpringBoot静态资源映射,图片无法实时访问问题及解决

 更新时间:2025年02月24日 10:05:42   作者:__浮生一梦丨っ  
文章介绍了Spring Boot中静态资源映射配置,解决了图片上传后无法实时访问的问题,通过配置虚拟路径,将访问路径映射到指定的物理路径,解决了图片无法实时显示的问题

SpringBoot静态资源映射,图片无法实时访问

项目中含有图片上传功能,但是图片成功上传后,图片无法访问显示

只有服务器编译重启之后,才可以访问

经了解,图片上传之后,只存在于当前服务器的物理路径,也就是说存在于项目的静态资源目录下,但并没有写入 target/classes/static编译后的静态资源目录下。

为此,我们需要配置静态资源映射,虚拟地址与物理地址映射关系,解决方法:

1.文件配置法

spring.servlet.multipart.max-file-size=3MB
spring.mvc.static-path-pattern=/static/**
spring.web.resources.static-locations=file:C://folder/static

注意:file的伪协议不可缺失

2.工具类法

@Configuration
public class WebConfigurer implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers( ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**").addResourceLocations("file:C:/folder/static");
    }
}

上面两者方法任选择其一,即可解决问题

JavaWeb 的路径映射问题

指定虚拟路径:访问 https://local:8080/upload/** 这个路径,target目录中依旧需要重启才能构建出图片,但通过虚拟路径的方法将当前的访问路径映射到指定的路径。

进入 Tomcat 本地文件夹中,找到 server.xml 文件进行修改

  • path:代表虚拟路径;即返回给客户端的地址;
  • docBase:代表绝对路径;文件存储的物理地址;
  • reloadable=“false”:代表不需要重启Tomcat,更新即可生效

在idea中编辑Tomcat配置

可以看到不重启服务器,上传图片也会立即显示。但是注意的是,target目录中依旧没有改图片。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 在Java中实现线程安全的单例模式的常见方式

    在Java中实现线程安全的单例模式的常见方式

    单例模式是一种常用的软件设计模式,它确保一个类只有一个实例,并提供一个全局访问点,在多线程环境下,确保单例模式的线程安全性是非常重要的,因为多个线程可能会同时尝试创建实例,导致实例不唯一的问题,本文介绍了在Java中实现线程安全的单例模式有几种常见的方式
    2024-09-09
  • Spring Boot 2.2 正式发布,大幅性能提升 + Java 13 支持

    Spring Boot 2.2 正式发布,大幅性能提升 + Java 13 支持

    随着 Spring Framework 5.2.0 成功发布之后,Spring Boot 2.2 也紧跟其后,发布了第一个版本:2.2.0。下面就来一起来看看这个版本都更新了些什么值得我们关注的内容
    2019-10-10
  • Java解决删除字符使频率相同问题

    Java解决删除字符使频率相同问题

    给你一个下标从0开始的字符串 word ,字符串只包含小写英文字母,你需要选择一个下标并删除下标处的字符,使得word中剩余每个字母出现频率相同,本文给大家介绍了Java解决删除字符使频率相同问题,需要的朋友可以参考下
    2024-02-02
  • SpringBootTest报错的问题解决

    SpringBootTest报错的问题解决

    本文主要介绍了SpringBootTest报错的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-09-09
  • Java并发编程之CountDownLatch原理详解

    Java并发编程之CountDownLatch原理详解

    这篇文章主要介绍了Java并发编程之CountDownLatch原理详解,CountDownLatch类中使用了一个继承自AQS的共享锁Sync对象,构造CountDownLatch对象时会将传入的线程数值设为AQS的state值,需要的朋友可以参考下
    2023-12-12
  • java实现找出两个文件中相同的单词(两种方法)

    java实现找出两个文件中相同的单词(两种方法)

    这篇文章主要介绍了java实现找出两个文件中相同的单词(两种方法),需要的朋友可以参考下
    2020-08-08
  • Java使用FileInputStream流读取文件示例详解

    Java使用FileInputStream流读取文件示例详解

    这篇文章主要介绍了Java使用FileInputStream流读取文件示例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Mybatis/MybatisPlus公共字段填充与配置逻辑删除

    Mybatis/MybatisPlus公共字段填充与配置逻辑删除

    MyBatis 和 MyBatis-Plus 都提供了相应的机制来处理这些公共字段的填充和逻辑删除,下面就来介绍一下,感兴趣的可以了解一下
    2025-05-05
  • mybatis 如何通过resultMap 返回long

    mybatis 如何通过resultMap 返回long

    这篇文章主要介绍了mybatis 如何通过resultMap 返回long的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Spring Boot 核心模块详解(12 个模块详解及作用说明)

    Spring Boot 核心模块详解(12 个模块详解及作用说明)

    和 Spring 框架一样,Spring Boot 框架也是由许多核心模块组成的,每个模块负责不同的功能点,本文讲着重于介绍 Spring Boot 相关的 12 个模块的作用和功能,感兴趣的朋友一起看看吧
    2025-04-04

最新评论