在Spring Boot's docs here ,关于提供静态内容,它说:
By default Spring Boot will serve static content from a directory called /static (or /public or /resources or /META-INF/resources) in the classpath.
我发现目录下的所有内容:
src/main/resources
将被复制到 classpath 中,所以我可以将我的静态内容放在:
src/main/resources/static
一切都会正常工作,我很高兴,因为我可以在 src
目录下放置我的静态内容。
但是,我对此有一些疑问:
- 为什么文档没有说将静态内容放在
src/main/resources/static
中,而是谈论类路径(我认为这有点令人困惑)? - 是否可以假设
src/main/resources/
中的内容将始终复制到类路径中? - 是否有一些 Spring Boot 官方文档解释了除了 Java 类和包之外我应该在类路径中找到的内容(到目前为止我只知道我可以从
src/main/resources/找到所有内容
)?
最佳答案
/src/main/resources
是一个 Maven项目结构约定。这是您放置资源的项目内部路径。在构建步骤中,Maven 将在那里获取文件并将它们放置在适当的位置,以便您在运行时类路径中使用它们,例如在可执行文件 .jar
中,一些物理文件系统位置用于类路径(使用 java
的 -cp
选项)等。
我可以选择自己构建我的应用程序或使用不同的构建工具。在这种情况下,/src/main/resources
将不存在。但是,目的是让类路径相同,即。包含相同的资源和 .class
文件。
Spring 引导文档讨论类路径,因为它不应该对项目的设置方式做出假设。
关于java - Spring Boot 类路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34160419/