在 此处的 Spring Boot 文档 中,关于提供静态内容,它说:
默认情况下,Spring Boot 将从 类路径 中名为 /static(或 /public 或 /resources 或 /META-INF/resources)的目录中提供静态内容。
我发现目录中的所有内容:
src/main/resources
将被复制到 classpath 中,所以我可以将我的静态内容放在:
src/main/resources/static
一切都会正常工作,我很高兴,因为我可以在 src
目录下拥有我的静态内容。
但是,我对此有一些疑问:
- 为什么文档没有说将静态内容放入
src/main/resources/static
而不是谈论类路径(我认为这有点令人困惑)? - 假设
src/main/resources/
中的内容将始终复制到类路径中是否很好? - 是否有一些 Spring Boot 官方文档解释了除了 Java 类和包之外我应该在类路径中找到的内容(到目前为止我只知道我可以从
src/main/resources/
找到所有内容)?
原文由 Andrea 发布,翻译遵循 CC BY-SA 4.0 许可协议
/src/main/resources
是 Maven 项目结构约定。这是您放置资源的项目内部路径。在构建步骤中,Maven 将在那里获取文件并将它们放置在适当的位置,以便您在运行时类路径中使用它们,例如在可执行文件中.jar
,类路径中使用的一些物理文件系统位置(与java
的-cp
选项)等我可以选择自己构建我的应用程序或使用不同的构建工具。在这种情况下,
/src/main/resources
将不存在。但是,目的是让类路径相同,即。包含相同的资源和.class
文件。Spring boot 文档讨论了类路径,因为它不应该对项目的设置方式做出假设。