现在有个需求是需要利用模板文件生成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 下的文件夹路径的坑相关推荐

  1. python创建文件夹用什么函数_Python——os.mkdir()在指定路径下创建文件夹 + 路径的连接理解...

    Python--os.mkdir()在指定路径下创建文件夹 + 路径的连接理解 发布时间:2018-11-16 17:08, 浏览次数:512 , 标签: Python os mkdir 引子: 我在 ...

  2. shell获取目录下所有文件夹的名称并输出

    获取指定目录/usr/下所有文件夹的名称并输出: shell代码: 1 #!/bin/bash 2 #方法一 3 dir=$(ls -l /usr/ |awk '/^d/ {print $NF}') ...

  3. Excel VBA 获取Windows系统下特殊文件夹路径(比如:桌面,用户)

    WScript.Shell对象SpecialFolders属性 WshShell对象的SpecialFolders属性返WshSpecialFolders 对象,该对象是一个特殊文件夹集合,其中包含整 ...

  4. springboot读取resource下json文件出现空指针异常

    1.pom包依赖 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</ ...

  5. Python获取Windows用户图片文件夹路径

    使用Python获取Windows系统下的默认图片路径.文档路径.下载路径都可以使用以下方法: 只需要更改Pictures为对应名称即可,例如Downloads等. os.path.join(os.e ...

  6. Qt中的默认文件夹路径获取方法

    原文地址:http://m.blog.csdn.net/blog/jiezhj_tjsd/37560363 头文件: 1.#include <QDesktopServices> 2.#in ...

  7. shell访问php文件夹,Shell获取某目录下所有文件夹的名称

    Shell获取某目录下所有文件夹的名称以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Shell获取某目录下所有文件夹的 ...

  8. VC++得到系统特殊文件夹路径

    地址:http://blog.csdn.net/morewindows/article/details/8745532转载请标明出处,谢谢. 欢迎关注微博:http://weibo.com/MoreW ...

  9. cordova flie文件目录_Cordova - 访问www目录下文件(获取www文件夹路径)

    我们使用Cordova开发时,会将html页面或着一些图片等资源文件放在 www 目录下.在程序中,如果我们想要获取到保存在 www 文件夹中的文件,方法如下. 1,获取www目录路径 (1)首先我们 ...

最新文章

  1. Redis进阶实践之五Redis的高级特性
  2. Flink从入门到精通100篇(二十三)-基于Apache Flink的爱奇艺实时计算平台建设实践
  3. Linux下的编程入门
  4. c语言上机考试设计题及答案,C语言程序设计基础上机考试一题目及参考答案.doc...
  5. Linux下Eclipse给工程配置(附加库目录)
  6. Upload LABS Pass-8
  7. 05人月神话阅读笔记
  8. chrome安装silverlight之后不识别
  9. CMC5601-微芯智能科技6轴运动控制器
  10. 高斯过程回归,得到预测标签和不确定度度
  11. PLC:学习笔记(西门子)2
  12. 如何处理大数据量的查询
  13. 体育成绩统计——20180801模拟赛T3
  14. 使用Servlet和JSP开发Java应用程序 ---- 豆瓣瓣项目(数据库 + JSP + Servlet)
  15. 王二 设计模式读书笔记
  16. MT6765 datasheet手册,MT6765参考设计,MT6765芯片资料
  17. Security Best Practices+Klocwork
  18. 什么是西安80坐标系
  19. 数学分析:数项级数的概念
  20. 【Jee---过滤器】

热门文章

  1. Git 使用 — Git 创建账户 查询账户信息
  2. Adobe 系列软件菜单栏突然变高解决
  3. java 超类调用子类_java – 从超类调用子类方法
  4. Grover算法思想
  5. Simulink和matlab绘制光伏PU和IU特性曲线
  6. 华为OD机试用Python实现 -【光伏场地建设规划】(2023-Q1 新题)
  7. 用MATLAB 2018b的simscape对倒立摆进行仿真
  8. 生活中的统计学案例600_2019年中国科学院大学统计学考研经验贴
  9. “超级网红”罗永浩要拿什么赌明天?
  10. Java中的animal类