【问题标题】:Locate static files under /resource/ directory in Spring Boot在 Spring Boot 中找到 /resource/ 目录下的静态文件
【发布时间】:2015-08-21 18:10:13
【问题描述】:

我有一个带有嵌入式 Tomcat 的 Spring Boot 应用程序,我正在通过 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 查看)。

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

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

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

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

【问题讨论】:

    标签: java spring maven tomcat spring-boot


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-20
      • 2014-09-13
      • 1970-01-01
      • 1970-01-01
      • 2015-10-02
      • 1970-01-01
      • 1970-01-01
      • 2020-05-05
      相关资源
      最近更新 更多