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里的内容,如图:
至于为什么会产生这种情况,目前还不清楚原因,如果有知道的小伙伴,欢迎留言告诉我。对于以上内容如有错误,希望大家指出。
第一次编写博客,如果有不好的地方,希望大家指出。
下一篇: typora字体设置颜色的解决方案