springboot获取resource目录路径,springboot读取resources下的文件

  springboot获取resource目录路径,springboot读取resources下的文件

  00-1010获取资源文件路径后台解决方案获取资源下的文件夹路径是基于maven项目的pom文件中的配置。这是我后来修改的正常包装情况。

  

目录

 

  00-1010在SpringBoot项目中,需要获取资源文件的路径,但是网上很多文章都失败了。后来结合官方文件实现了。这里记录了我用的版本是SpringBoot2.x

  00-1010 1.获取资源文件夹的路径

  文件目录=新文件( XXX/XXX/src/main/resources );string report path=directory . getcanonicalpath();Xxx是您的项目中的包的名称。文件将只找到项目的最外层地址;

  这里需要注意的是,xxx前不能加/,否则只会找到顶级地址。

  00-1010现在需要使用模板文件生成HTML或PDF文件。然后因为HTML模板文件包含图片和字体,我在资源文件夹下新建了一个文件夹,然后分类,就是资源下有一个上传文件夹,一个模板文件夹,然后是模板文件。也就是说模板文件在resource下面的两级目录里,那么问题来了。我想尽了一切办法,但我拿不到文件。

  

获取resources文件路径

maven包包含这些模板文件:

 

  构建资源资源目录rc/main/resources/directory包含include**/*。xml/include include**/*。png/include include**/*。html/include include**/*。ttf/include include**/*。TTF/include include**/*。ttc/include /includes!-是否要替换资源筛选false/filtering/resource/resources/build中的属性?安装后,您可以在当前模块或项目的目标文件夹中看到我们的模板文件。

  

背景

 

  在代码中,使用了这个好评率最高的ClassPathResource。

  导入org . spring framework . core . io;resource resource=new class path resource( upload/template file );log.info(contextPath:{} ,resource . geturl());此时,按照理想情况,应该是可以打印出文件夹templateFile的绝对路径。如果该文件夹存在于resource下,您可以获得该文件夹的绝对路径。

  事实真的很虚。太神奇了。一开始我以为。是因为和别人的项目不一样才造成这个问题吗?

  踩了很久坑,发现路径太深,就把templateFile直接放在资源下面。我又试了一次,发现上面的日志不再是空的,可以正常获取模板文件的绝对路径了。这对于windows和Linux都是可能的。

  然后好像问题解决了。但是,由于我的部署使用docker镜像,所以获取模板文件和生成文件是正常的。但是,由于生成的HTML文件使用各种徽标图像文件,因此生成文件的位置也安装在主机上。在容器内部查看生成的文件是正常的,但是生成的HTML文件中的图像不会显示在主机上。

  期间试着用了文件服务器上的图片,可以正常显示。但是由于文件服务器没有连接外网,生成的文件放到其他地方就不会显示。

  最后,把容器内部的一个路径挂载到主机同名的路径,把固定的模板文件和需要的图片存放在主机的文件夹里,把路径硬编码到程序里,也能正常生成文件和echo,这是最笨的办法。

  以上个人经验,希望能给大家一个参考,也希望大家能支持盛行的IT。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: