在Spring Boot中找到/ resource /目录下的静态文件

时间:2015-06-07 02:21:23

标签: java spring maven tomcat spring-boot

我有一个带有嵌入式Tomcat的Spring启动应用程序,我正在通过Netbeans进行测试。在目录src / main / resources /下我有两个包含静态文件的文件夹。我正在尝试使用这些文件,但程序似乎认为文件夹是空的。

以下是我编写的一些代码,用于测试目录并查看它们是否包含任何文件。

    pathToFiles = "/resources/";

    if(true)
    {

        File kmlDirectory = new File(pathToFiles + "waitingKML/");

        Collection<File> files;
        files = FileUtils.listFiles(
                kmlDirectory,
                new RegexFileFilter("^(.*?)"),
                DirectoryFileFilter.DIRECTORY
        );

        if(files.isEmpty()) {

            return "Files are empty: " + kmlDirectory.toString();
        }
        else
            return "Files are NOT empty";
    }

这是我的目录结构图(从Netbeans看)。

enter image description here

当我运行此测试代码时,我得到'文件为空:\ resources \ waitingKML '。

enter image description here

根据此处的文档https://spring.io/blog/2013/12/19/serving-static-web-content-with-spring-boot,Spring Boot将自动添加位于以下任何目录中的静态Web资源:

  • / META-INF /资源/
  • /资源/
  • /静态/
  • /公共/

我想知道这是否与任何属性文件或我的配置/设置有关?

1 个答案:

答案 0 :(得分:1)

这完全取决于当前工作目录的程序。通常在IDE中,它将成为项目的根,而不是src / main,因此无法找到它。

一旦它是部署的WAR,你需要确保资源被正确打包(无法告诉你用什么来打包所有内容)而不是原始文件访问需要使用类似ClassLoader.getResourceAsStream()来获取静态文件