博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springboot内置tomcat配置虚拟路径
阅读量:6341 次
发布时间:2019-06-22

本文共 1131 字,大约阅读时间需要 3 分钟。

 

  在Springboot中默认的静态资源路径有:classpath:/METAINF/resources/classpath:/resources/classpath:/static/classpath:/public/,从这里可以看出这里的静态资源路径都是在classpath中(也就是在项目路径下指定的这几个文件夹)

 

  试想这样一种情况:一个网站有文件上传文件的功能,如果被上传的文件放在上述的那些文件夹中会有怎样的后果?

  • 网站数据与程序代码不能有效分离;

  • 当项目被打包成一个.jar文件部署时,再将上传的文件放到这个.jar文件中是有多么低的效率;

  • 网站数据的备份将会很痛苦。

 

  此时可能最佳的解决办法是将静态资源路径设置到磁盘的基本个目录。在中可以直接在配置文件中覆盖默认的静态资源路径的配置信息:application.properties配置文件如下:

spring.mvc.static-path-pattern=/**spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:这里写自己的上传文件路径(注意要以/结尾)

 

  spring.mvc.static-path-pattern=/**表示所有的访问都经过静态资源路径;

  spring.resources.static-locations在这里配置静态资源路径,前面说了这里的配置是覆盖默认配置,所以需要将默认的也加上否则staticpublic等这些路径将不能被当作静态资源路径,在这个最末尾的file:${web.upload-path}之所有要加file:是因为指定的是一个具体的硬盘路径,其他的使用classpath指的是系统环境变量。

  由于前面已经在静态资源路径中上传了一个名为1.jpg的图片,也使用server.port=1122设置了端口号为1122,所以可以通过浏览器打开:http://localhost:1122/1.jpg访问到刚刚上传的图片。但是要注意,如果你在springboot的配置文件中加了属性server.context-path,即项目名,那么访问的时候一定要加上这个配置的属性值,不然404.

 

 

参考博客:https://blog.csdn.net/qq_36750461/article/details/85050946

转载于:https://www.cnblogs.com/DDgougou/p/10821872.html

你可能感兴趣的文章
海量密匙确保苹果系统更新安全
查看>>
《Docker技术入门与实战》——3.1 获取镜像
查看>>
2013 年 12 月最好的 35+ 个 jQuery 插件
查看>>
转 Lambda表达式解析
查看>>
修改参数时scope参数值的作用
查看>>
为什么寄存器比内存快?
查看>>
Tomcat7+Spring3异常Failed to start component
查看>>
从零开始学_JavaScript_系列(三)——CSS相关(基础、选择器、position、div)
查看>>
Java千百问_03基本语法(003)_public、privite、protected有什么区别
查看>>
iOS开发之iOS程序的启动过程
查看>>
jquery插件开发继承了jQuery高级编程思路
查看>>
"朕亦甚想你"——从后宫管理看阿里云访问控制(下)
查看>>
动态引用webservice
查看>>
缓存命中率
查看>>
Activiti 实战篇 小试牛刀
查看>>
java中的Static class
查看>>
Xshell 连接CentOS服务器解密
查看>>
[工具类]视频音频格式转换
查看>>
GNS3与抓包工具Wireshark的关联
查看>>
设计模式之策略设计模式
查看>>