静态资源路径是指系统可以直接访问的路径,且路径下的所有文件均可被用户直接读取
来源:互联网 发布:百度网盘会员 淘宝 编辑:程序博客网 时间:2024/06/05 07:57
转载自:https://www.cnblogs.com/ceshi2016/p/6704693.html
在Springboot中默认的静态资源路径有:classpath:/META-INF/resources/
,classpath:/resources/
,classpath:/static/
,classpath:/public/
,从这里可以看出这里的静态资源路径都是在classpath
中(也就是在项目路径下指定的这几个文件夹)
试想这样一种情况:一个网站有文件上传文件的功能,如果被上传的文件放在上述的那些文件夹中会有怎样的后果?
- 网站数据与程序代码不能有效分离;
- 当项目被打包成一个
.jar
文件部署时,再将上传的文件放到这个.jar
文件中是有多么低的效率; - 网站数据的备份将会很痛苦。
此时可能最佳的解决办法是将静态资源路径设置到磁盘的基本个目录。
在Springboot中可以直接在配置文件中覆盖默认的静态资源路径的配置信息:
application.properties
配置文件如下:
server.port=1122web.upload-path=D:/temp/study13/spring.mvc.static-path-pattern=/**spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,\ classpath:/static/,classpath:/public/,file:${web.upload-path}
注意:web.upload-path
这个属于自定义的属性,指定了一个路径,注意要以/
结尾;
spring.mvc.static-path-pattern=/**
表示所有的访问都经过静态资源路径;
spring.resources.static-locations
在这里配置静态资源路径,前面说了这里的配置是覆盖默认配置,所以需要将默认的也加上否则static
、public
等这些路径将不能被当作静态资源路径,在这个最末尾的file:${web.upload-path}
之所有要加file:
是因为指定的是一个具体的硬盘路径,其他的使用classpath
指的是系统环境变量
- 编写测试类上传文件
package com.zslin;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner;import org.springframework.util.FileCopyUtils;import java.io.File;/** * Created by 钟述林 393156105@qq.com on 2016/10/24 0:44. */@SpringBootTest@RunWith(SpringRunner.class)public class FileTest { @Value("${web.upload-path}") private String path; /** 文件上传测试 */ @Test public void uploadTest() throws Exception { File f = new File("D:/pic.jpg"); FileCopyUtils.copy(f, new File(path+"/1.jpg")); }}
注意:这里将D:/pic.jpg
上传到配置的静态资源路径下,下面再写一个测试方法来遍历此路径下的所有文件。
@Testpublic void listFilesTest() { File file = new File(path); for(File f : file.listFiles()) { System.out.println("fileName : "+f.getName()); }}
可以到得结果:
fileName : 1.jpg
说明文件已上传成功,静态资源路径也配置成功。
- 浏览器方式验证
由于前面已经在静态资源路径中上传了一个名为1.jpg
的图片,也使用server.port=1122
设置了端口号为1122
,所以可以通过浏览器打开:http://localhost:1122/1.jpg
访问到刚刚上传的图片。
- 静态资源路径是指系统可以直接访问的路径,且路径下的所有文件均可被用户直接读取
- java直接读取客户端txt文件 + JavaWeb中读取文件资源的路径问题
- C#读取路径下的所有文件
- Python读取路径下的所有文件
- springMVC 访问静态资源 访问图片存放的路径:这个路径可以不是tomcat下的目录
- 关于静态资源访问的路径问题
- 递归读取相应路径下的所有文件
- 递归读取某个路径下的所有文件
- 【Java】读取其下所有文件夹与文件的路径
- R读取路径下的所有文件和统计
- java读取一个路径下的所有文件
- 【Java】读取其下所有文件夹与文件的路径
- web开发访问资源填写路径时“/”、“../”、“直接文件名”的区别
- ResourceBundle.getBundle读取资源文件的路径
- ResourceBundle.getBundle读取资源文件的路径
- ftp 给定路径 下载改路径下的所有文件
- 复制某个路径下的所有文件到指定路径
- 安卓文件保存、读取工具类,可以直接用,包含路径说明
- 接口
- AIDL详解之Messenger
- Java泛型
- Picasso的简单实用
- SurfaceView介绍和通用模板
- 静态资源路径是指系统可以直接访问的路径,且路径下的所有文件均可被用户直接读取
- 产品经理,原型设计之前你要做些什么?
- 内核启动kernel_init(init)进程分析
- 原始上传下载图片
- 阿里云ECS服务器挂载磁盘
- 探索式测试知识点
- 经典:区间dp-合并石子
- Java算法实现之最大子数组
- SylixOS调试与性能分析技术--内存泄漏检测