在SpringBoot的文档中,关于服务静态内容,它说:
默认情况下,spring引导将提供来自类路径中名为/static(或/public或/resources或/meta-inf/resources)的目录的静态内容。
我发现目录中的所有内容:
src/main/resources
将被复制到类路径中,以便我可以将静态内容放入:
src/main/resources/static
一切都会很好,我很高兴,因为我可以有我的静态内容下 src
目录。
但是,我有一些问题:
为什么文档没有说要将静态内容放入 src/main/resources/static
而不是谈论类路径(我认为这有点混乱)?
假设 src/main/resources/
是否总是在类路径中复制?
有没有一些springboot官方文档来解释除了java类和包之外,我应该在类路径中找到什么(到目前为止,我只知道我可以从中找到所有的内容 src/main/resources/
)?
2条答案
按热度按时间ftf50wuq1#
/src/main/resources
是maven项目结构约定。它是项目中放置资源的路径。在构建步骤中,maven将把文件放在适当的位置,以便您在运行时类路径中使用它们,例如在可执行文件中.jar
,类路径中使用的一些物理文件系统位置(使用java
的-cp
选项)等。我可以选择自己构建应用程序,也可以选择使用其他构建工具。在这种情况下,
/src/main/resources
不会存在。但是,目的是使类路径相同,即包含相同的资源和.class
文件夹。spring引导文档讨论类路径,因为它不应该假设项目是如何设置的。
szqfcxe22#
类路径还包含其他库(jar),这些库也可以具有
static
文件夹,然后将包含该文件夹以提供静态资源。所以如果文档只说明文件夹src/main/resources/static
,这将是不完整的。广告2:只要你不弄乱默认的maven配置,那么可以肯定的是。
广告3:也许从甲骨文的官方文档开始:https://docs.oracle.com/javase/8/docs/technotes/tools/windows/classpath.html. 提示:当然,不仅仅是类路径中的resources文件夹的内容,当然还有所有编译过的类,因此得名。