Springboot 获取 resource 下的文件夹路径的坑
现在有个需求是需要利用模板文件生成HTML 或者 PDF 文件,然后由于HTML 模板文件里面包含图片和字体,然后我就在resource 文件夹下新建了一个文件夹,然后又分类,也就是 resource
下面有个 upload
文件夹,有个 templateFile
文件夹,然后才是模板文件。也就是说模板文件在resource下面两级目录里面,那么问题来了。用了各种办法,就是获取不到这个文件。。。。。。。。
前提是maven项目的pom文件里面配置了,maven打包包含这些模板文件:
<build><resources><resource><directory>src/main/resources</directory><includes><include>**/*.xml</include><include>**/*.png</include><include>**/*.html</include><include>**/*.ttf</include><include>**/*.TTF</include><include>**/*.ttc</include></includes><!--是否替换资源中的属性--><filtering>false</filtering></resource></resources></build>
然后install后,可以在当前模块或者项目的 target
文件夹下可以看到我们的模板文件。
这是后来我修改后的正常打包情况:
其中代码里面,用了好评率最高的这个 ClassPathResource
import org.springframework.core.io;Resource resource = new ClassPathResource("upload/templateFile");log.info("contextPath:{}", resource.getURL());
这时候,按照理想情况,应该就是可以打印出来 templateFile
这个文件夹所在的绝对路径了。如果这个文件夹存在resource下面,是可以拿到这个文件夹的绝对路径的。
事实确是空的。。。。。就很神奇,刚开始以为。是不是因为跟别人的项目不一样,才导致的这个问题呢。
后面踩坑了半天,发现,是不是路径太深了,把往前提一层呢,就试下把 templateFile
直接放到 resources
下面,再次尝试,发现上面日志不再是空的了,可以正常取到模板文件所在的绝对路径了。这点windows和Linux都是可以的。
然后看似问题解决了,但是由于我这边部署使用docker镜像部署的,获取模板文件和生成文件也是正常的,但是由于生成的HTML文件用到了各种logo图片文件,然后生成的文件所在位置也挂载到宿主机上了,在容器内部查看生成的文件是正常的,但是到了宿主机上,生成的HTML文件里面的图片就不显示了。
期间尝试了使用文件服务器上的图片,是可以正常显示的,但是由于文件服务器跟外网不通,所以生成的文件,放到别的地方,图片就不显示了。
最后还是采用最笨的方法,将容器内部的某个路径挂载到宿主机的同名
路径上,在宿主机的文件夹下存放固定的模板文件和需要用到的图片,路径硬编码写死到程序里面,也是可以正常生成文件和回显的。
Springboot 获取 resource 下的文件夹路径的坑相关推荐
- python创建文件夹用什么函数_Python——os.mkdir()在指定路径下创建文件夹 + 路径的连接理解...
Python--os.mkdir()在指定路径下创建文件夹 + 路径的连接理解 发布时间:2018-11-16 17:08, 浏览次数:512 , 标签: Python os mkdir 引子: 我在 ...
- shell获取目录下所有文件夹的名称并输出
获取指定目录/usr/下所有文件夹的名称并输出: shell代码: 1 #!/bin/bash 2 #方法一 3 dir=$(ls -l /usr/ |awk '/^d/ {print $NF}') ...
- Excel VBA 获取Windows系统下特殊文件夹路径(比如:桌面,用户)
WScript.Shell对象SpecialFolders属性 WshShell对象的SpecialFolders属性返WshSpecialFolders 对象,该对象是一个特殊文件夹集合,其中包含整 ...
- springboot读取resource下json文件出现空指针异常
1.pom包依赖 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</ ...
- Python获取Windows用户图片文件夹路径
使用Python获取Windows系统下的默认图片路径.文档路径.下载路径都可以使用以下方法: 只需要更改Pictures为对应名称即可,例如Downloads等. os.path.join(os.e ...
- Qt中的默认文件夹路径获取方法
原文地址:http://m.blog.csdn.net/blog/jiezhj_tjsd/37560363 头文件: 1.#include <QDesktopServices> 2.#in ...
- shell访问php文件夹,Shell获取某目录下所有文件夹的名称
Shell获取某目录下所有文件夹的名称以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Shell获取某目录下所有文件夹的 ...
- VC++得到系统特殊文件夹路径
地址:http://blog.csdn.net/morewindows/article/details/8745532转载请标明出处,谢谢. 欢迎关注微博:http://weibo.com/MoreW ...
- cordova flie文件目录_Cordova - 访问www目录下文件(获取www文件夹路径)
我们使用Cordova开发时,会将html页面或着一些图片等资源文件放在 www 目录下.在程序中,如果我们想要获取到保存在 www 文件夹中的文件,方法如下. 1,获取www目录路径 (1)首先我们 ...
最新文章
- Redis进阶实践之五Redis的高级特性
- Flink从入门到精通100篇(二十三)-基于Apache Flink的爱奇艺实时计算平台建设实践
- Linux下的编程入门
- c语言上机考试设计题及答案,C语言程序设计基础上机考试一题目及参考答案.doc...
- Linux下Eclipse给工程配置(附加库目录)
- Upload LABS Pass-8
- 05人月神话阅读笔记
- chrome安装silverlight之后不识别
- CMC5601-微芯智能科技6轴运动控制器
- 高斯过程回归,得到预测标签和不确定度度
- PLC:学习笔记(西门子)2
- 如何处理大数据量的查询
- 体育成绩统计——20180801模拟赛T3
- 使用Servlet和JSP开发Java应用程序 ---- 豆瓣瓣项目(数据库 + JSP + Servlet)
- 王二 设计模式读书笔记
- MT6765 datasheet手册,MT6765参考设计,MT6765芯片资料
- Security Best Practices+Klocwork
- 什么是西安80坐标系
- 数学分析:数项级数的概念
- 【Jee---过滤器】