Spring-Boot 静态资源处理的小坑

Spring Boot 默认配置的/**映射到/static(或/public ,/resources/META-INF/resources),/webjars/**会映射到classpath:/META-INF/resources/webjars/

部署时候,静态资源可以放在jar旁边.就能用,而且可以随时修改.

但是这里有个坑,打包jar的时候,项目根目录里要有static这个文件夹,才能正常.如果打包时没static,打包完了后加上,是不行的,返回404.

例子:

打包时候static在就好,空的都行.里面的文件部署之后都可以修改,新增,删除,还是挺方便的.

/src/main/resources/static  这也可以放static,会被打包进jar,不能修改.

/static 不会打包进jar 并且可以覆盖上面的.

静态资源配置源码:https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/ResourceProperties.java

package org.springframework.boot.autoconfigure.web;

import org.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties(prefix = "spring.resources", ignoreUnknownFields = false)
public class ResourceProperties {

    private static final String[] CLASSPATH_RESOURCE_LOCATIONS = {
            "classpath:/META-INF/resources/", "classpath:/resources/",
            "classpath:/static/", "classpath:/public/" };

......

 

---------------------------------------------------------------------------------------------------------------------------

2017-10-25 20:47:10 配置文件也是可以放在jar包外面的,也能起作用。(application.properties 或者 application.yml)

posted @ 2017-10-20 12:57  烙饼卷馒头  阅读(258)  评论(0)    收藏  举报