您的当前位置:首页正文

spring.resources.static-locations= 不生效

2024-11-07 来源:个人技术集锦

正常静态资源可以参考其它博主的配置,写的很好,

静态资源配置不生效的原因我运到的有以下几点,做个记录

1、权限框架没有配置

@Bean("shiroFilter")
public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) {
    ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
    shiroFilter.setSecurityManager(securityManager);

    //oauth过滤
    Map<String, Filter> filters = new HashMap<>();
    filters.put("oauth2", new OAuth2Filter());
    shiroFilter.setFilters(filters);

    Map<String, String> filterMap = new LinkedHashMap<>();
    //其它配置
    filterMap.put("/upload/**", "anon");
    filterMap.put("/**", "oauth2");
    shiroFilter.setFilterChainDefinitionMap(filterMap);

    return shiroFilter;
}

2、添加了@EnableWebMvc注解

Spring Boot 提供了对 Spring MVC 的自动配置,这些自动配置使用与大多数应用。

对静态资源映射支持…

默认首页index.html。

如果需要…的自定义配置,可以使用@Configuration注解WebMvcConfigurer,但是不要添加@EnableWebMvc注解。…
如果想要完全控制 Spring MVC,可以同时添加@Configuration和@EnableWebMvc注解

@Configuration
//@EnableWebMvc
public class CorsConfig implements WebMvcConfigurer {

  @Override
  public void addCorsMappings(CorsRegistry registry) {
    registry.addMapping("/**")
        .allowedOrigins("*")
        .allowedHeaders("*")
        .allowCredentials(true)
        .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
        .maxAge(3600);
  }

}

3、配置文件里格式千万要正确,检查一下空格

spring:
  mvc:
    throw-exception-if-no-handler-found: true
    static-path-pattern: /upload/**
  resources:
    static-locations: classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:D:/Work/hqxd/hqxd_project/files
Top