SpringBoot项目中如何访问静态资源时无意踩到的坑

SpringBoot项目中访问静态资源时无意踩到的坑

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

1、问题

    这是一个特殊的问题

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

    在 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编译,
在这里插入图片描述
如果没有 pom 文件中的那段内容,就无法获得webapp下的静态资源;但是加上内容却不能得到 static 目录下的静态资源。如何才能同时得到?

2、解决

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值