使用SpringBoot配置虚拟化路径用于图片的展示

目录
  • 配置虚拟化路径用于图片的展示
    • 1.首先我们在application.yml文件
    • 2.配置虚拟路径的映射
  • 配置虚拟路径访问本地图片问题
    • 问题
    • 举个例子

配置虚拟化路径用于图片的展示

springboot默认可以访问resources下的static文件夹下的静态资源,我们一般将图片指定上传到static下的某个文件夹

例如images:

开发阶段可以使用,但是当项目打成jar包就无法使用,运行会报出无法找到文件路径。这时候就需要配置虚拟路径,用来指定到硬盘下的固定地址。

1.首先我们在application.yml文件

配置文件上传的路径,以及访问的地址:

这里我设置了文件上传之后统一保存到c盘下的images文件夹下,访问的地址为:http://localhost:8888/images/xxx.jpg

2.配置虚拟路径的映射

上面/images/**表示的是服务器请求图片的地址 例如:http://localhost:8888/images/xxx.jpg 都会去映射到本地C:/images/xxx.jpg

注意:我上述代码里取到配置文件中的rootSavePath,但是并没有使用,而是自己写的file:/c:/images,因为直接使用该变量会报错,路径前面必须加file。

配置虚拟路径访问本地图片问题

关于springboot+vue,改变服务器文件夹图片访问显示问题

问题

本人最近用springboot+vue做了个项目,里面有关图片显示和修改功能。

1.做了虚拟路径,能访问到文件夹的图片

2.前端使用element的el-upload上传图片,后端用MultipartFile file接收,并替换原来文件夹的图片,能成功,本地文   件夹图片确实替换成功

3.确定本地图片改变后,发现页面图片未改变,刷新也没改变

举个例子

1.使用虚拟路径,前端的<img src="http://localhost:8080/img/img1.jpg"> 能访问到本地图片img1.jpg

2.然后用删除本地img1.jpg,放入img2.jpg,修改名称为img1.jpg,其实意思就是修改了img1图片但名称不变。

3.结果<img src="http://localhost:8080/img/img1.jpg">显示的还是原来的img1图片.刷新页面也一样,只能把图片路径单独在浏览器显示并刷新才出现更换的图片。

4.猜测是浏览器的什么机制引起的。但是这样效果不太友好,毕竟我想要的是可以修改图片直接在浏览器看到效果,

5.后面还是删除原图,用新图的路径给img.有人有差不多的问题吗?有更好的解决方法欢迎评论。

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

(0)

相关推荐

  • springboot文件虚拟路径映射方式

    目录 springboot文件虚拟路径映射 在application.properties配置文件中配置 springboot 配置文件虚拟路径 供外部访问 第一步:配置application.yml 第二步:添加 Configuration 文件 重启 springboot文件虚拟路径映射 在application.properties配置文件中配置 spring.http.multipart.location= D:/ spring.mvc.static-path-pattern=/** s

  • spring boot2.0图片上传至本地或服务器并配置虚拟路径的方法

    最近写了关于图片上传至本地文件夹或服务器,上传路径到数据库,并在上传时预览图片.使用到的工具如下: 框架:spring boot 2.0 前端模板:thymeleaf 图片预览:js 首先,上传以及预览,js以及<input type="file">,以及预览图片的JS function Img(obj){ var imgFile = obj.files[0]; console.log(imgFile); var img = new Image(); var fr = ne

  • Springboot配置图片虚拟映射示例代码

    1.新建一个MyWebAppConfigurer 配置静态资源需要映射的位置.建议把addResourceLocations的路径写在application.yml中.方面以后部署的打包修改配置文件的时候做外部配置文件加载.方面修改.这边为了节约时间就在代码中写了. package io.renren.config; import org.springframework.context.annotation.Configuration; import org.springframework.we

  • SpringBoot配置图片访问的虚拟路径

    记录一次SpringBoot配置虚拟路径访问图片的笔记最近编写的项目都是需要将图片进行访问的,而我的是有spring+springMVC+Mybatis框架实现的项目,并且在使用ssm框架的时候已经是用到了图片访问的虚拟路径来进行访问的,ssm配置虚拟路径实在Tomcat上配置的图片访问,而SpringBoot是内置Tomcat的那应该怎么配置呢具体看下图,先配置图片上传路径 这个是jsp页面的代码段 <div class="layui-form-item"> <la

  • 使用SpringBoot配置虚拟化路径用于图片的展示

    目录 配置虚拟化路径用于图片的展示 1.首先我们在application.yml文件 2.配置虚拟路径的映射 配置虚拟路径访问本地图片问题 问题 举个例子 配置虚拟化路径用于图片的展示 springboot默认可以访问resources下的static文件夹下的静态资源,我们一般将图片指定上传到static下的某个文件夹 例如images: 开发阶段可以使用,但是当项目打成jar包就无法使用,运行会报出无法找到文件路径.这时候就需要配置虚拟路径,用来指定到硬盘下的固定地址. 1.首先我们在app

  • springboot配置开发和测试环境并添加启动路径方式

    目录 springboot配置开发和测试环境并添加启动路径 SpringBoot配置文件(多环境配置dev.test.prod.启动器类的位置) 多环境配置 启动器类的位置 springboot配置开发和测试环境并添加启动路径 嗯,开发和测试环境要分离,这是一般共识(虽然我工作过的公司都没有这种分离),spring boot也可以按照配置文件的读取来做到这一点. 上图有三个application开头的配置文件,要达到能够读取外部配置文件的目的,我们需要引入一个依赖包,就是红色箭头所指的那个,把这

  • SpringBoot配置发送Email的示例代码

    本文介绍了SpringBoot配置发送Email,分享给大家,具体如下: 引入依赖 在 pom.xml 文件中引入邮件配置: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> 配置文件 # JavaMailSender 邮件发送的配置 sprin

  • springboot配置内存数据库H2教程详解

    业务背景:因soa系统要供外网访问,处于安全考虑用springboot做了个前置模块,用来转发外网调用的请求和soa返回的应答.其中外网的请求接口地址在DB2数据库中对应专门的一张表来维护,要是springboot直接访问数据库,还要专门申请权限等,比较麻烦,而一张表用内置的H2数据库维护也比较简单,就可以作为替代的办法. 环境:springboot+maven3.3+jdk1.7 1.springboot的Maven工程结构 说明一下,resource下的templates文件夹没啥用.我忘记

  • SpringBoot 配置提示功能(超详细)

    目的 配置自动提示的辅助功能可以让配置写起来更快,准确率大大提高. springboot jar 包含提供所有支持的配置属性细节的元数据文件.文件的目的是为了让 IDE 开发者在用户使用 application.properties 或 application.yml 文件时提供上下文帮助和代码补全. 大多数元数据文件是在编译时通过处理用 @ConfigurationProperties 注释的所有项自动生成的.也可以手动编写部分元数据. 版本 参考 SpringBoot 2.2.0.RELEA

  • SpringBoot配置logback的步骤

    配置日志文件 spring boot 默认会加载 classpath:logback-spring.xml 或者 classpath:logback-spring.groovy. 如需要自定义文件名称,在 application.properties 中配置 logging.config 选项即可. 在 src/main/resources 下创建 logback-spring.xml 文件,内容如下: <?xml version="1.0" encoding="UTF

  • SpringBoot配置拦截器的示例

    在SpringBoot中配置拦截器,主要有下面两个步骤: 1.继承接口 HandlerInterceptor,根据需要重写其中的三个类. 2.在配置类中注入该类. public class MyInterceptor implements HandlerInterceptor { //controller执行之前 @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response,

随机推荐