欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringBoot项目中如何访问静态资源

程序员文章站 2022-07-10 20:20:14
...

SpringBoot项目中如何访问静态资源

首先要知道springboot中两种访问静态资源的方式
 两种获取静态资源的方式(转载)

1、问题

    这是一个特殊的问题

    我在创建一个 web 的 springboot 项目的时候,想要通过两种方式访问静态资源,但是当我在启动之后进行访问的时候,只访问到了第一种方式的访问结果,明明目录结构都没有问题。目录结构如下:
SpringBoot项目中如何访问静态资源
查看 target 文件:
SpringBoot项目中如何访问静态资源

    在 target 目录下,没有找到对应的 webapp 的静态资源。在网上找到一种解决办法(查看原文)(转载)
在对应的 pom.xml 文件中加上下面一段:

    <build>
        <resources>
            <resource>
                <directory>src/main/webapp</directory>
                <targetPath>META-INF/resources</targetPath>
                <includes>
                    <include>**/**</include>
                </includes>
            </resource>
        </resources>
    </build>

再次通过maven编译,
SpringBoot项目中如何访问静态资源
如果没有 pom 文件中的那段内容,就无法获得webapp下的静态资源;但是加上内容却不能得到 static 目录下的静态资源。如何才能同时得到?

2、解决

    尝试了很多次,最后发现了原因:创建好的 springboot 项目,直接启动与通过 maven 编译后再启动,两者所编译出来的 target 文件,其内容是不一样的,springboot 项目直接通过启动类启动的时候,会把 static 目录下的静态资源一同编译,同时也会把 webapp 目录下的静态资源编译,这种方式不需要在 pom 文件中添加那一段 build ,如图:
SpringBoot项目中如何访问静态资源
    但是,如果是先通过 maven 的编译,再启动 springboot 项目,那么就只会编译 static 目录下的内容,或者在 pom 中添加上述 build 之后,只编译webapp里的内容,如图:
SpringBoot项目中如何访问静态资源
    至于为什么会产生这种情况,目前还不清楚原因,如果有知道的小伙伴,欢迎留言告诉我。对于以上内容如有错误,希望大家指出。
    第一次编写博客,如果有不好的地方,希望大家指出。