参考博文https://blog.youkuaiyun.com/yiifaa/article/details/78299052
https://www.cnblogs.com/hujunzheng/p/9682960.html
https://blog.youkuaiyun.com/yali_aini/article/details/83213695
https://blog.coding.net/blog/spring-static-resource-process
用的springboot搭建项目,静态文件目录如下
静态资源配置如下(错误的)
正确的
犯过的错误如下:
1.静态资源放在webapp下面,但是配置spring.resources.static-locations=classpath:/static,这种情况是无论如何也访问不到的,因为根本加载不到静态资源,classpath指的是, 即WEB-INF下面的classes目录 ,在springboot项目中就是,src/main/resource s和src/main/java 目录,webapp 指的项目的根目录,所以这样配置根本找不到静态资源!!
1.1所以静态资源如果放在webapp下面,要这样配置spring.resources.static-locations=/static
1.2如果静态资源放在src/main/resource s和src/main/java 目录下,那么我们配置成
spring.resources.static-locations=classpath:/static,其实这样我们可以不配置,springboot默认就是这样配置的。
通过上一步可以让静态资源可以被找到,但是要正确访问到静态资源还需要配置spring.mvc.static-path-pattern,它决定了我们访问静态资源的url路径怎么拼接!!
如果不配置spring.mvc.static-path-pattern,springboot默认的配置是/**,其实我们完全不用配置,如果按照上图中配置了,那么访问路径就需要多加上/static
静态资源访问路径:http://ip:端口/项目名/static/(spring.resources.static-locations配置的目录下的文件路径),springboot默认项目名是/,如果不配置路径中就不需要项目名
以上是按配置得到的正确的静态资源访问路径!!
最简单办法:将静态资源放在最classpath下面,什么都不用配,直接让springboot按其默认来就行了!